Utilizzare i widget in Android – Lezione 17 di Android

Android mette a disposizione un grande numero di widget utilizzati per interagire con l’utente come i bottoni, le immagini e il calendario

In Android i widget sono delle View che interagiscono con l’utente come i bottoni, le immagini, i testi, ecc. I widget forniti da Google sono raggruppati nel pacchetto android.widget ed ognuno di questi estende (direttamente o indirettamente) la classe View. I widget possono essere raggruppati in:

  • Campi di testo: consentono di scrivere del testo;
  • Form: vengono utilizzati per costruire dei form di compilazione (bottoni, checkbox, ecc);
  • Immagini e media: consente di inserire immagini, video, ecc.;
  • Tempo e date: servono per gestire il tempo e le date (orario, calendario, ecc.);
  • Composti: contengono più widget come le liste (ListView);
  • Altri: sono dei widget avanzati (come lo zoom, OpenGL, ecc.).

Android widget

Tutti i widget possono essere definiti dinamicamente tramite Java che tramite XML, vedremo nelle prossime lezione come fare. Ecco alcuni dei widget messi a disposizione da Android:

  • android.widget.button: consente di visualizzare un bottone cliccabile all’interno di una View. Per poter impostare il testo al suo interno viene utilizzato il metodo setText().
  • android.widget.imageview: la classe ImageView consente di visualizzare un’immagine all’interno di un’applicazione. Alcuni dei metodi più utilizzati sono setImageBitmap(), setImageDrawable() e setImageResource().

    Ecco un esempio di come utilizzare un’ImageView:

    <ImageView
    android:id="@+id/my_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/my_image_90dp" />

    Android ImageView

  • android.widget.imagebutton: rappresenta un bottone con un’immagine (in genere salata in res/drawable). Questa classe estendendo ImageView eredita tutti i metodi per impostare l’immagine nel bottone.

    Ecco un esempio di Button definita nella cartella layout:

    <Button
    android:id="@+id/my_button"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="@string/my_string_text"/>

  • android.widget.textview: permette di visualizzare del testo in un’Activity. Il messaggio può essere impostato con il metodo setText(), che può accettare come parametro sia una stringa contenuta nel file strings.xml tramite la classe R (ad esempio .setText(“Ciao”) e .setText(R.string.var_saluto)).
    Ecco un esempio di come inserire un testo tramite layout in XML:

    <TextView
    android:id="@+id/my_textview"
    android:layout_width="wrap_content"
      android:layout_height="wrap_content"
        android:textStyle="bold" />

  • android.widget.edittext: consente al programmatore di utilizzare una casella di testo modificabile. Il testo inserito in una EditText può essere recuperato tramite il metodo getText() che restituisce un oggetto di tipo android.text.Editable.

    Ecco un esempio della classe EditText definita in XML:

    <EditText
        android:id="@+id/my_edittext"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.75" />

  • android.widget.checkbox: permette di inserire in una View una casella di spunta per rendere opzionabile delle funzionalità. La classe CheckBox estendendo TextView erdita il metodo setText() per impostare il contenuto di testo della casella.
  • android.widget.radiobutton: realizza un bottone di tipo radio quando l’opzione che l’utente può scegliere deve essere una ed una sola soltanto. Per poter raggruppare più bottoni radio si utilizza la classe android.widget.RadioGroup.

    Android RadioButton

  • android.widget.togglebutton: viene utilizzando quando si vuole dare la possibilità di poter attivare o disattivare delle opzioni.
  • android.widget.analogclock: consente di visualizzare un orologio analogico all’interno dell’attività.
  • android.widget.textclock: inserisce un orologio di tipo digitale.
  • android.widget.datepicker: consente di far scegliere all’utente una data selezionando giorno, mese ed anno. Le informazioni contenute in un oggetto di tipo DatePicker possono essere recuperate tramite i metodi getDayOfMonth(), getMonth() e getYear().
  • android.widget.timepicker: permette di scegliere un orario selezionando ora e minuto. L’orario impostato dall’utente può essere recuperato con i metodi getCurrentHour() e getCurrentMinute().

Vediamo qualche esempio sull’uso dei widget in cui utilizziamo un LinearLayout per posizionare gli elementi all’interno della schermata in sequenza. Per ogni widget implementato, nel metodo onCreate dell’activity andremo ad inizializzare i nostri widget. Vediamo un esempio con i bottoni:

  package datrevo.buttondemo;
  import android.app.Activity;
  import android.os.Bundle;
  import android.widget.Button;
  import android.widget.LinearLayout;
  public class ButtonDemoActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      Button view = new Button(this);
      view.setText("Bottone");

      LinearLayout layout = new LinearLayout(this);
      layout.addView(view);
      setContentView(layout);
    }

  }

Ecco un esempio come inserire del testo all’interno di un’activity:

  package datrevo.textviewdemo;
  import android.app.Activity;
  import android.os.Bundle;
  import android.widget.LinearLayout;
  import android.widget.TextView;

  public class TextViewDemoActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      TextView view = new TextView(this);
      view.setText("Ecco un esempio di TextView in Android");

      LinearLayout layout = new LinearLayout(this);
      layout.addView(view);
      setContentView(layout);
    }

  }

Indice Lezione PrecedenteLezione Successiva

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *