Le interfacce utente delle applicazioni Android sono normalmente interfacce di tipo grafico, in modo da offrire all’utente un modo comodo, semplice e veloce di interagire.
Android fa una distinzione netta fra gli oggetti di tipo View, tipicamente bottoni, icone, caselle di testo, tutto ciò che permette di interagire con l’utente, ed oggetti di tipo ViewGroup, che sono sostanzialmente elementi grafici che non forniscono interazione ma che fungono da veri e propri contenitori per gli oggetti di tipo View.
Esistono, nelle librerie standard di Android, moltissimi componenti di tipo View che possiamo richiamare, che estendono la classe di base android.view.View. La maggior parte di questi componenti si trova nella libreria android.widget e possono essere richiamati in modo molto immediato dalle nostre applicazioni.
La classe android.view.ViewGroup è una particolare estensione della classe View, la cui particolarità è quella di poter contenere altri oggetti View.
La classe ViewGroup rende quindi disponibili una serie di metodi che permettono di aggiungere nuovi oggetti View al gruppo. Alcuni dei metodi più frequentemente utilizzati sono:
public void addView(View childView), che aggiunge un oggetto view al gruppo;
public void addView(View child, int index), che aggiunge un oggetto view al gruppo in posizione index;
public void addView(View child, int width, int height), che aggiunge un oggetto view al gruppo, assegnandogli una certa dimensione.
Per creare l’ interfaccia utente della nostra App, combineremo assieme oggetti di tipo View e ViewGroup ed una volta costruita la nostra interfaccia, la visualizzeremo sullo schermo tramite il metodo setContetView(), il che renderà la nostra App automaticamente attiva.
Apriamo quindi il progetto HelloWordl che avevamo scritto ed apportiamo alcune modifiche.
Aggiungiamo, oltre alla direttiva import android.widget.TextView due nuove direttive di import all’inizio del file:
import android.widget.Button;
import android.widget.LinearLayout;
Modifichiamo quindi la funzione onCreate(), che come abbiamo visto in precedenza viene richiamata alla partenza della App. La nostra funzione diventerà quindi:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_world);
Button button1 = new Button(this);
button1.setText(“Bottone 1”);
Button button2 = new Button(this);
button2.setText(“Bottone 2”);
Button button3 = new Button(this);
button3.setText(“Bottone 3”);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setGravity(Gravity.CENTER_HORIZONTAL);
layout.addView(button1);
layout.addView(button2);
layout.addView(button3);
setContentView(layout);
}
Salviamo, facciamo click sul tasto Run ed avremo la nostra prima interfaccia grafica perfettamente funzionante.
< Lezione Precedente | Lezione Successiva >