back to top

Rendiamo modificabile un oggetto dichiarato nel main.xml – Guida Sviluppo App Android

Andiamo adesso a mettere in pratica quanto detto nell’ultima parte del capitolo precedente. Come punto di partenza possiamo utilizzare il progetto di esempio che abbiamo già creato oppure possiamo crearne uno nuovo seguendo la stessa procedura mostrata nei primi capitoli della guida.

Il nostro esempio conterrà due oggetti di tipo TextView ai quali verrà sostituita la stringa di inizializzazione presente nel file activity_main.xml tramite codice sorgente. Vediamo come fare.

Come prima cosa apriamo il file activity_main.xml e posizioniamoci nella finestra che ci mostra il listato xml del file. A questo punto sostituiamo il codice presente con il seguente:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">

  <TextView android:text="Testo di default TextView1" 
    android:id="@+id/testo1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
  </TextView>

  <TextView android:text="Testo di default TextView2" 
    android:id="@+id/testo2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
  </TextView>

</LinearLayout>

Come possiamo vedere abbiamo scelto un LinearLayout (vedremo più avanti nella guida gli altri tipi di layout disponibili) e abbiamo dichiarato due TextView. Attraverso la stringa android:text settiamo il valore di default delle TextView e con la stringa android:id associamo un id univoco all’elemento e un nome (testo1 e testo2) che useremo nel codice sorgente per effettuare gli opportuni collegamenti.

A questo punto il file activity_main.xml non richiede altre configurazioni e quindi possiamo salvarlo e chiuderlo.

Adesso apriamo il file sorgente .java (se usate il vecchio progetto il file MyHelloWorld) e sostituiamo il contenuto con il seguente codice:

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloWorld extends Activity {

  private TextView textView1;
  private TextView textView2;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        
    textView1 = (TextView) findViewById(R.id.testo1);
    textView1.setText("Testo modificato tramite codice 1");
        
    textView2 = (TextView) findViewById(R.id.testo2);
    textView2.setText("Testo modificato tramite codice 2");
        
  }
}

Come possiamo vedere la classe contiene due attributi di tipo TextView e nel metodo onCreate invochiamo il medesimo metodo sulla superclasse ed indichiamo come layout il file activity_main.xml.

Fatto ciò, usando il metodo findViewById, associamo gli elementi dichiarati nell’activity_main.xml con gli attributi della classe. Con il metodo setText cambiamo il valore di default dei due TextView sostituendolo con la stringa passata come argomento al metodo.

Lanciando l’applicazione verrà mostrata, sullo schermo del dispositivo, la seguente schermata:

Schermata mostrata sul dispositivo.
Pubblicità

In questa guida...