CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 4 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 14 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 38 Thanks ricevuti nell'ultimo mese

Pagina 1 di 15 12311 ... ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 147
Discussione:

[GUIDA] Creare la prima applicazione android

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    [GUIDA] Creare la prima applicazione android

    Ciao a tutti

    In questa guida vedremo come creare in pochissimo tempo la vostra primissima applicazione Android. Partiremo dalle azioni basilari , con qualche riferimento ai singoli componenti utilizzati.

    Capitoli
    1 - Configurazione e prima applicazione (Questo post)
    2 - Ottimizzazione dei Listeners
    3 - Spinners

    Prerequisiti:



    Fatta questa premessa, possiamo buttarci a capofitto in quella che sarà la vostra prima app
    • In Eclipse, selezionate File > New > Project
    • Selezionate Android Application Project


    • Nella schermata successiva dovrete riempire i vari campi come, ad esempio, mostrato nell'immagine qui sotto:



      Application Name : Il nome che l'utente visualizzerà nel drawer delle applicazioni
      Project Name : Il nome del progetto in Eclipse
      Package Name : il nome del pacchetto (dovrete inserire ALMENO un punto tipo foo.bar oppure foo.bar.lol)

      Minimum required SDK : Il livello minimo delle API che la vostra app supporterà (corrispondenti ad una versione Android)
      Target SDK : il livello massimo delle API che l'app supporterà
      Compile With : Le API con le quali verrà compilata l'applicazione

      Tema : potrete scegliere fra vari temi base per la vostra applicazione
    • Allo step successivo potrete scegliere se creare un'icona personalizzata o l'activity principale dell'app (vedremo poi):


    • Andando avanti, verrà quindi proposto di creare un'icona custom per l'app:


    • Una volta creata l'icona andate avanti. Vi verrà chiesto quale sarà l'aspetto dell'app. selezionate "Blank Activity"


    • Ora dovrete dare un nome all'Activity (il file contenente il codice Java) e un nome al Layout per l'activity sopra citata ( Dove risiederà la parte grafica):



    Ora che è tutto pronto vi troverete di fronte una schermata di questo tipo:



    Ok, riprendetevi un secondo dal trauma, riacquistate la dovuta lucidità e vediamo innanzi tutto la struttura di quella che sarà la nostra app:



    Vediamo le cartelle principali (quelle che useremo in questa prima app):
    Cartella src --> dove si troveranno tutti i file java, quindi il codice vero e proprio
    Cartella assets --> file che potranno essere estratti dall'apk dell'app e utilizzati altrove (immagini, binari, qualsiasi file vogliate)
    Cartella res --> tutta la parte relativa alla grafica dell'app, quindi icone, layouts, stili ecc ecc..

    All'interno della cartella res sono presenti, come vedete, molte altre cartelle:
    drawable-**** --> cartelle che conterranno i png della grafica relativi alle diverse risoluzioni (all'interno trovate già l'icona che avete creato durante il wizard precedente e se le aprite, noterete che hanno diverse risoluzioni) ==> reference ufficiale: Supporting Multiple Screens | Android Developers

    layout --> contiene gli XML dei layout dell'applicazione

    La prima cosa che dovremo fare è creare il layout, quindi, nel tab posto in alto cliccate su activity_main.xml (oppure aprite il file in /res/layout/activity_main.xml)
    Vi troverete di fronte qualcosa di questo tipo:



    rimuovete la TextView con scritto "Hello World" (un click per selezionarla poi premete canc (su mac il tasto backspace))

    Ora prendete la TextView con scritto "Large" dalla barra sinistra e trascinatela all'interno del layout. Qui potrete indicare quanto spazio dovrà occupare la View ed in che posizione dovrà essere. Ai fini del codice, la posizione non fa alcuna differenza in quanto risiede nel solo XML.



    Ripetete lo stesso procedimento prendendo un pulsante (Button) e trascinatelo nel layout.
    Il risultato finale sarà molto simile a questo:



    Una volta eseguiti questi 2 step, date uno sguardo alla barra posta sulla destra. Questa contiene la struttura del file in alto, mentre in basso i parametri personalizzabili relativi all'oggetto (View) selezionata.

    Cliccate sulla TextView, guardate ai parametri posti sotto e modificate il primo valore da @+id/textView a @+id/text (per comodità, potete sceglierlo a piacere, l'importante è che restino i caratteri @+id/)

    Fate la stessa cosa per il pulsante (Button) e cambiate l'ID in @+id/button

    Salvate il file.


    Il prossimo passo è scrivere il codice e nello specifico, ciò che il pulsante dovrà fare quando premuto.
    Dovremo aggiungere solo poche righe di codice.

    Aprite quindi il file /src/com.nome.app/MainActivity.java (se non già presente nel Tab in alto, in tal caso cliccate su quello ).

    La prima cosa necessaria è referenziare i vari oggetti, ossia, è necessario "dire" all'app "cosa è chi e chi è cosa", in parole povere, dovremo dichiarare sia la TextView aggiunta poco fa, sia il pulsante, quindi, all'interno del metodo OnCreate, dovremo aggiungere:

    Con queste 2 stringhe non faremo altro che creare 2 oggetti "mButton" e "mText" i quali sono riferiti ai 2 oggetti aggiunti nell'XML. Come potrete notare, c'e' un richiamo negli ID impostati nell'XML tramite R.id.text e R.id.button. Questa regola vale per qualsiasi altra view voi andrete ad aggiungere al file XML del layout.

    Ora abbiamo i nostri 2 oggetti "pronti" a fare qualcosa, ma come?
    Ogni view ha delle interfacce specifiche adatte ad eseguire diverse azioni. Quello che noi vogliamo la nostra Applicazione faccia, è semplicemente impostare un testo diverso nella TextView quando il pulsante viene cliccato.

    L'interfaccia specifica per i Button è OnClickListener, vediamo quindi come implementarla.

    successivamente all'aggiunta delle 2 righe sopra, aggiungiamo le seguenti.



    Dato che esistono diverse interfacce nominate "OnClickListener" dovremo specificare quale interfaccia usare e relativa a quale classe di Oggetti, indicheremo quindi Button.OnCLickListener dove Button non indica nello specifico il nostro bottone, ma la classe Button alla quale appartiene il pulsante da noi aggiunto (mButton).

    All'interno del metodo onClick(View arg0) dovremo inserire ciò che il bottone dovrà fare una volta cliccato e nello specifico, impostare il testo di mText, ed è qui che avremo quindi la riga mText.setText("HELLO WORLD");

    Bene, ora non resta che salvare e provare l'app
    L'ideale sarebbe utilizzare il proprio dispositivo, quindi, assicuratevi di aver abilitato il debug USB (Opzioni sviluppatore) e che il vostro PC/MAC riconosca il dispositivo (La modalità con il quale lo connettete non importa, sia solo carica, che MTP vanno bene).

    Cliccate quindi sull'iconcina posta in alto, raffiguarante la freccia verde e selezionate "Android Application"



    In pochi secondi Eclipse compilerà l'applicazione, la installerà sul dispositivo e la avvierà automaticamente. Il risultato sarà molto simile all'anteprima vista nel Layout poco fa.

    Spoiler:


    Complimenti! Avete fatto la vostra prima APP!
    Prossimamente continuerò questa guida e vedremo altre opzioni e altre View da utilizzare
    Ultima modifica di cesco; 16-07-14 alle 23:08
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  2. I seguenti 27 Utenti hanno ringraziato cesco per il post:

    bernard01 (25-10-14),capitanharlock1023 (15-05-14),cyanus (24-10-16),DrBello (09-05-17),Francescus28 (12-02-14),garfield (08-04-14),Gege98 (23-02-14),Gugliandalf (19-02-14),iLuke (12-02-14),KlaasMad (11-02-14),leonardodettoileo (12-02-14),lio97 (21-08-14),lo97 (04-05-14),LucaBertoni (16-02-14),lucadalba (02-03-16),midox93 (05-07-14),N1m0Y (14-02-14),p87 (27-02-14),peppe130 (07-05-14),PjnRoll (15-02-17),samulomba96 (27-03-14),TaroMisaki (21-02-14),thereferee (17-07-14),wally74 (13-05-14),wuby (10-06-16),Yaya98 (13-02-14),zui (29-06-14)

  3.  
  4. #2
    Baby Droid


    Registrato dal
    Dec 2012
    Messaggi
    5

    Ringraziamenti
    1
    Ringraziato 1 volta in 1 Post
    Predefinito

    grazie per la guida, proprio ieri ho cominciato a mettere mano sulla mia prima App ma la devo provare sul dispositivo

    curioso di vedere le prossime guide!

  5. Il seguente Utente ha ringraziato TaroMisaki per il post:

    cesco (19-02-14)

  6. #3
    Androidiani Power User L'avatar di cesco


    Registrato dal
    Sep 2010
    Località
    Bg
    Messaggi
    5,018
    Smartphone
    TYTN2,desire,desireHD, oneX

    Ringraziamenti
    54
    Ringraziato 1,346 volte in 724 Posts
    Predefinito

    Ottimizzazione dei listeners

    Il primo codice che abbiamo scritto è abbastanza primitivo e "brutto", vediamo quindi come ottimizzare il codice e i relativi listeners, partendo dall'app creata la scorsa volta

    Esistono fondamentalmente 2 modi per ottimizzare i listeners:

    - far si che la nostra Activity implementi il listener
    - creare un metodo relativo al click del bottone e dichiararlo direttamente nell'XML

    Activity implementa il listener

    La prima cosa da fare è impostare le nostre View/oggetti come privati nell'Activity, in modo tale che possano essere utilizzati esternamente al metodo onCreate().

    i
    Le variabili possono essere dichiarate in diversi modi :
    private Button mButton = mButton sarà disponibile a tutti i metodi interni alla classe che stiamo scrivendo
    public Button mButton = mButton sarà disponibile anche a classi esterne a quella che stiamo scrivendo, quindi, ad esempio, potrà essere utilizzato anche in un'altra classe diversa da MainActivity.
    public static Button mButton = mButton sarà richiamabile senza istanziare la classe, ossia direttamente tramite la sintassi MainActivity.mButton.
    private final Button mButton = mButton sarà (appunto) finale, ossia non modificabile.


    Il codice da inserire sarà quindi:



    Ora dobbiamo fare un paio di modifiche all'interno del metodo onCreate e cambieremo la dichiarazione delle view mButton ed mText come segue:



    Ora non resta che aggiungere il Listener, quindi, all'interno del metodo OnCreate andremo a scrivere:



    Ora Eclipse vi restituirà un errore in quanto la nostra Activity ancora non implementa il listener e dovremo fare un'altra piccola modifica:



    una volta aggiunta la parte evidenziata avremo un altro errore, in quanto la nostra Activity non possiede il metodo "onClick" relativo al listener.
    Noterete che Eclipse evidenzierà "MainActivity", andate sopra con il cursore del mouse, comparirà una piccola finestrella, cliccate su "Add unimplemented methods" e vedrete che in basso comparirà il metodo onClick relativo al listener.



    All'interno di questo metodo andremo a riscrivere la riga di codice relativa all'impostazione del testo nella TextView quando il bottone viene cliccato, quindi:



    e il codice finale sarà:



    Salvate tutto e avviate l'applicazione, noterete il medesimo risultato
    Vi chiederete il motivo per cui implementare il listener in questo modo, ebbene è molto semplice. Se la vostra Activity ha più pulsanti non dovrete implementare diversi listeners ma potrete utilizzare questo aggiungendo all'interno uno switch/case statement.

    Ad esempio, seguendo la parte precedente della guida (primo post), nell'XML aggiungete un altro pulsante e assegnategli un altro id (ad esempio @+id/button2)
    Dichiarate la variabile private Button mButton2 come indicato sopra
    Dentro OnCreate aggiungete:


    Ora andate nel metodo "onClick" e modificatelo come segue:



    Facendo una modifica davvero piccola potrete quindi inserire tutti i pulsanti che vorrete e il codice sarà molto più pulito


    Creare un metodo dedicato al click

    Fondamentalmente questo è il metodo più semplice di implementare il listener. Fondamentalmente andremo a dichiarare direttamente nell'XML quale sarà il metodo relativo al click del pulsante.

    Nella Activity aggiungete il metodo:



    Ora aprite l'XML del layout (/res/layout/activity_main.xml)
    Aggiungete un pulsate
    nella struttura dell'xml posta in alto a destra, fate doppio click sul pulsante appena aggiuntoe passerete alla visualizzazione XML del layout. (potrete tornare alla visualizzazione grafica cliccando sul tab posto in basso a sinistra "Graphical layout".
    Vedrete selezionato tutto il codice relativo al bottone che sarà di questo tipo:



    dovrete aggiungere "" e il risultato sarà:



    Ora, avviando la vostra app, noterete che il testo della TextView verrà cambiato quando cliccherete il nuovo pulsante e quindi avrete implementato correttamente il listener
    Follow me on:
    <!-- Place this tag where you want the widget to render. -->
    <div class="g-person" data-width="180" data-href="//plus.google.com/113012341277613226011" data-theme="dark" data-rel="author"></div>

    <!-- Place this tag after the last widget tag. -->
    <script type="text/javascript">
    window.___gcfg = {lang: 'it'};

    (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
    })();
    </script>
    <br>
    <a class="twitter-timeline" href="https://twitter.com/xcesco89" data-widget-id="398762031488040960">Tweets di @xcesco89</a>
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementB yId(id)){js=d.createElement(s);js.id=id;js.src=p+" ://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}} (document,"script","twitter-wjs");</script>
    Androidiani app
    Estensione Androidiani per Google Chrome

  7. I seguenti 4 Utenti hanno ringraziato cesco per il post:

    csabato (26-03-14),PjnRoll (15-02-17),tintin099 (05-10-14),wuby (10-06-16)

  8. #4
    Baby Droid L'avatar di Gugliandalf


    Registrato dal
    Feb 2014
    Località
    Roma
    Messaggi
    2
    Smartphone
    Samsung Galaxy S4

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Va bene, bellissima guida, non ringrazio solo perché non riesco a trovare quell'accidente di tasto per farlo (hint anyone?), ma...

    Ho seguito sia questo tutorial che quello "ufficiale" (developer . android . com/training/basics/firstapp/index . html), ma su quest'ultimo ho un problema, allo step "Running Your App", dove dice "Run on a Real Device":

    1. Plug in your device to your development machine with a USB cable. If you're developing on Windows, you might need to install the appropriate USB driver for your device. For help installing drivers, see the OEM USB Drivers document.
    2. Enable USB debugging on your device.
    e fin qui tutto bene, ma:

    To run the app from Eclipse:

    1. Open one of your project's files and click Run from the toolbar.
    2. In the Run as window that appears, select Android Application and click OK.
    3. Eclipse installs the app on your connected device and starts it.
    Anziché farlo, mi chiede di identificare una device, reale o virtuale. In pratica, non vede lo smartphone (Galaxy S4 GT-I9505 con Android 4.3). Aggiungo: Win 7 pro sp1, Eclipse in ADT v22.3.0-887826.

    Ora, io sono un niubbo di Android, ma so' vent'anni che programmo, l'impressione che ho è che ci sia un settaggio nascosto da qualche parte che ho tralasciato... qualsiasi dritta sarà benvenuta.

  9. #5
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Quote Originariamente inviato da Gugliandalf Visualizza il messaggio
    Ora, io sono un niubbo di Android, ma so' vent'anni che programmo, l'impressione che ho è che ci sia un settaggio nascosto da qualche parte che ho tralasciato... qualsiasi dritta sarà benvenuta.
    Domanda: hai abilitato il Debug USB dalle Opzioni sviluppatore?

  10. #6
    Baby Droid L'avatar di Gugliandalf


    Registrato dal
    Feb 2014
    Località
    Roma
    Messaggi
    2
    Smartphone
    Samsung Galaxy S4

    Ringraziamenti
    1
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Crotan Visualizza il messaggio
    Domanda: hai abilitato il Debug USB dalle Opzioni sviluppatore?
    Sì, è la prima cosa che ho fatto.

  11. #7
    Baby Droid


    Registrato dal
    Mar 2014
    Messaggi
    16

    Ringraziamenti
    3
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Premetto che sono passato ad android da poco, e da ieri ho deciso di entrare nel mondo della programmazione android. Conosco già qualcosa di vbs, html e css ma nulla di java. Per ora installato eclipse, l'sdk e ho creato un emulatore di un dispositivo android. Soltanto non riesco a capire dove devo scrivere il codice java quello per indicare al software "cosa è chi e chi è cosa" in poche parole. Dove devo scriverlo nel codice già elaborato da eclipse? Cos'è il metodo onCreate? O meglio, non cos'è perché quello un po' l'ho capito, ma dov'è più che altro vorrei sapere. Spero di essere stato chiaro... 😅😅

  12. #8
    Androidiani Power User L'avatar di Crotan


    Registrato dal
    Jul 2013
    Località
    Roma
    Messaggi
    1,265
    Smartphone
    Redmi Note 9 Pro

    Ringraziamenti
    401
    Ringraziato 1,445 volte in 626 Posts
    Predefinito

    Quote Originariamente inviato da Gugliandalf Visualizza il messaggio
    Sì, è la prima cosa che ho fatto.
    Mi dispiace ma allora non saprei come aiutarti.
    Quote Originariamente inviato da Dav1lsa Visualizza il messaggio
    Premetto che sono passato ad android da poco, e da ieri ho deciso di entrare nel mondo della programmazione android. Conosco già qualcosa di vbs, html e css ma nulla di java. Per ora installato eclipse, l'sdk e ho creato un emulatore di un dispositivo android. Soltanto non riesco a capire dove devo scrivere il codice java quello per indicare al software "cosa è chi e chi è cosa" in poche parole. Dove devo scriverlo nel codice già elaborato da eclipse? Cos'è il metodo onCreate? O meglio, non cos'è perché quello un po' l'ho capito, ma dov'è più che altro vorrei sapere. Spero di essere stato chiaro... ����
    Per prima cosa ti consiglio di leggere una delle tante guide di base che trovi nel Web (HTML.it, MrWebmaster e via dicendo). Il codice Java va scritto in /src. Il metodo onCreate() è il primo ad essere invocato al lancio di una nuova Activity (vedi "ciclo di vita di una Activity") ed è inserito di default da Eclipse nella classe MainActivity, sempre nella directory src.

  13. Il seguente Utente ha ringraziato Crotan per il post:

    Dav1lsa (02-03-14)

  14. #9
    TK3
    TK3 non è in linea
    Senior Droid


    Registrato dal
    Sep 2011
    Messaggi
    397
    Smartphone
    Nexus 5

    Ringraziamenti
    190
    Ringraziato 20 volte in 19 Posts
    Predefinito

    Ciao a tutti purtroppo è la prima volta che mi cimento nello sviluppo di un app e sto riscontrando un pò di problemi. Chiedo venia quindi per la mia ignoranza ma qual'è il "metodo OnCreate"? cioè devo mettere le stringhe di codice dove?
    Io ho provato sia a metterle tra le parentesi (al posto di "Bundle savedInstanceState") e sia a metterle sotto "setsetContentView...ecc" ma nella barra di scorrimento a sinistra appaiono delle crocette rosse o qualcosa di simile che indica un errore. Cosa ho combinato?

  15. Il seguente Utente ha ringraziato TK3 per il post:

    Dav1lsa (04-03-14)

  16. #10
    Baby Droid


    Registrato dal
    Mar 2014
    Messaggi
    16

    Ringraziamenti
    3
    Ringraziato 0 volte in 0 Posts
    Predefinito

    È quello che ho fatto io e continuo a non capire dove vanno....

Pagina 1 di 15 12311 ... ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy