1. TextView, AutoCompleteTextView, MultiAutoCompleteTextView e CheckedTextView

textviewL'oggetto TextView è il classico componente etichetta di testo che serve per visualizzare semplicemente del testo.Il controllo AutoCompleteTextView è una casella di testo con delle possibili parole di default che possono essere inserite. Quando iniziamo a scrivere il controllo mostrerà le possibili parole che possono essere scelte da una lista.

2. EditText

edittextL'oggetto EditText è la comune TextBox di qualsiasi altro linguaggio di programmazione. Permette l'inserimento di testo e di gestire gli eventi relativi al suo contenuto.

3. Button, ImageButton e ToggleButton

buttonIl Button (pulsante) è uno dei più classici componenti, utilizzato spesso per dare via a delle operazioni. L'ImageButton non è altro che un Button, sia in comportamento sia in struttura, ma con una immagine di sfondo. Il ToggleButton è il classico pulsante di On/Off.

4. RadioButton e CheckBox

radiobuttonUna CheckBox è il classico componente di spunta, utilizzato spesso da selettore per opzioni. La RadioButton (pulsante rotondo), come la CheckBox, permette di scegliere delle opzioni con la particolarità che sono esclusive. In altre parole, si inseriscono una serie di RadioButton in un contenitore RadioGroup (gruppi di RadioButton) e se ne potrà scegliere solo una delle varie disponibili.

5. ListView

listviewUna ListView è il basilare componente per la visualizzazione di una lista di elementi.

6. GridView

gridviewCome suggerisce il nome, una GridView è una griglia di elementi visualizzati a video.

7. DatePicker e TimePicker

datetimeIl DatePicker viene utilizzato per selezionare una data. Il TimePicker, invece, viene utilizzato per selezionare un orario.

8. AnalogClock e DigitalClock

clockAnalogClock è il classico orologio analogico. DigitalClock rappresenta l'orologio digitale.

8. ImageView

imageviewImageView è il componente per la visualizzazione di immagini.

9. Chronometer

cronoIl Chronometer rappresenta il cronometro digitale, poco utile a prima vista, ma per applicazioni specifiche può essere un valido componente.

10. ProgressBar, RatingBar e SeekBar

barLa ProgressBar, ovvero barra di progresso, è un componente utilizzato per visualizzare lo stato di un'operazione. La RatingBar è la consueta barra di gradimento, utilizzata molto per votazioni di video o immagini e rappresentata dalle classiche stelle. La SeekBar è una barra che consente di selezionare un valore in un certo range di valori discreti.

11. Spinner

spinnerLo Spinner è un controllo per visualizzare e scegliere una opzione su una lista di dati.

12. ExpandableListView

expandableUna ExpandableListView è una ListView a due livelli. Nel primo livello sono presenti i principali argomenti da rappresentare, nel secondo i vari elementi raggruppati per argomento.

13. WebView

webviewComponente non di poco conto è il WebView, un vero e proprio browser all'interno della nostra applicazione.

14. Toast

toastIl controllo Toast è un piccolo contenitore che visualizza un messaggio di testo. Adoperato spesso per notificare piccoli messaggi o per le segnalazioni di errori.

15. Notification

notificationIn questo paragrafo vedremo come visualizzare una notifica nella ActionBar. Il primo layout mostra l'activity principale, con un pulsante che, una volta cliccato, genererà la notifica.

16. AlertDialog

alertPer creare la nostra buon vecchia MessageBox utilizzeremo il controllo AlertDialog. Il layout mostra solo quello che sarà l'Activity che lancerà la MessageBox e non il suo layout, che rimarrà quello standard (è anche possibile modificarlo).

17. LinearLayout

linearIl LinearLayout è il layout manager più utilizzato, anche se non è più il layout di default per un progetto Android. Dispone ogni elemento su ogni riga se l'attributo orientation è impostato su vertical e su colonne se è impostato su horizontal.

18. TableLayout

tableIl TableLayout dispone i componenti in forma tabellare, dividendoli per riga.

19. RelativeLayout

relativeIl RelativeLayout predispone i controlli rispetto ad un controllo precedentemente segnalato. E' diventato il layout manager predefinito nei progetti Android, data la sua versatilità e maneggevolezza.

20. FrameLayout

frameIl FrameLayout dispone tutti gli elementi uno sopra l'altro. Utilizzato per creare piccoli popup o sovrapposizioni varie.

21. Layout manager misto

layoutIn questo esempio, ho unito quasi tutti i layout manager precedentemente illustrati, dando visione del fatto che è possibile annidarli anche se di natura diversa.

22. Sensori

sensorI sensori sono dispositivi hardware che convertono una grandezza fisica, come la temperatura o la gravità, in un'informazione digitale. Quello che faremo noi in questo esempio, è caricare la lista dei sensori e filtrarne solo uno e leggerne le informazioni.

23. Touch

touchIl Touch screen è un vero e proprio sensore che rileva la pressione di un oggetto sulla sua superficie. Senza perderci troppo in differenze quali resistivo e capacitivo, andiamo a vedere il nostro esempio, dove ci focalizziamo nell'intercettare la pressione di un oggetto su una porzione di schermo.

24. Multitouch

multitouchLa differenza nel rilevare Touch da Multitouch sullo schermo è quasi irrisoria. Basta ricavare il numero di punti e richiamare le coordinate tramite indice.

25. File

fileSu Android, la gestione del File system è la stessa di una classica applicazione Java. Quindi, verranno utilizzate gli oggetti FileOutputStream e OutputStreamWriter per scrivere, FileInputStream e InputStreamReader per leggere.

26. Mail

mailAnalizziamo come inviare una semplice mail, sfruttando i gestori di posta elettronica interni al nostro sistema operativo.

27. Menu

menuNel sistema operativo Android è possibile utilizzare due tipi di menu: Context Menu e Option Menu. L'Option Menu non è altro che il menu dell'applicazione ed è possibile utilizzarlo cliccando il tasto in alto a destra del nostro sistema o il tasto menu. Il Context Menu è il menu generato da un controllo facendo pressione continua per qualche secondo su di esso.

28. Tab ActionBar

tabLa nostra ActionBar, oltre alla possibilità di inserire pulsanti, etichette, menu e varie altri componenti, possiamo impostarla per proporre un aspetto tabellare alla nostra applicazione. Questo tipo di impostazione, sostituisce quella precedente basata sulle TabActivity ormai deprecate dalla versione 13 delle API.

29. MediaPlayer

mediaplayerIl controllo MediaPlayer permette di manipolare flussi audio/video. Nel nostro esempio ci occuperemo solo di avviare e stoppare un file audio di tipo MP3.

30. Invio SMS

sendsmsIn questo esempio, vedremo come inviare un semplice sms.

31. Lista cartelle SMS

listsmsIn questo esempio, vedremo come elencare i nostri sms contenuti in memoria. Di seguito il layout dell'activity, che conterrà una lista di cartelle sms selezionabili e la lista degli sms letti.

32. Effettuare Chiamata

sendcallPer effettuare una chiamata utilizzeremo banalmente l'applicazione interna offerta dal nostro dispositivo.

33. Intercettare chiamata

interceptcallPer intercettare una chiamata dobbiamo utilizzare sempre il solito listener, in questo caso PhoneStateListener Come dice il nome, servirà ad intercettare un cambiamento nello stato del telefono.

34. Service

serviceUn Service è un insieme di operazioni, a corta o lunga durata, che vengono eseguite da una applicazione senza necessità dell'iterazione con l'utente. Utilizzato spesso per espletare funzioni autonome con la possibilità di iterazione attraverso un applicativo di appoggio. Nel nostro layout sono stati predisposti due pulsanti che serviranno ad avviare e arrestare il servizio.

35. Threading

threadL'argomento Threading è molto vasto, qui ci occuperemo di vedere in maniera superficiale alcuni dei costrutti che ci offre il nostro sistema Android. Utilizzeremo tre modi per effettuare thread: AsyncTask, Runnable e Handle.La nostra Activity sarà composta da tre pulsanti, ciascuno eseguirà uno dei tre metodi sopracitati.

36. Widget

widgetI Widget sono dei contenitori grafici che vengono posizionati ed utilizzati sulla home o su una delle sue pagine. Adoperati per mettere in rilievo informazioni importanti o comunicazioni di vario tipo, come il meteo, aggiornamenti mail, orologio e varie. L'input è abbastanza limitato ed i controlli che si possono inserire sono pochi, esclusi anche EditText et similia.