Android Lezione 3 – Saluti da Android

Nella lezione precedente abbiamo visto passo passo come viene creato il primo progetto, e lanciato la prima applicazione cercando di capire cosa conteneva il codice generato automaticamente.

Ma questa volta saremo noi a scrivere del codice, cosi cominceremo a prendere confidenza con gli strumenti messi a disposizione dalla piattaforma di sviluppo.  Questa volta faremo scrivere all’applicazione un messaggio personalizzato.

Per farlo utilizzeremo un oggetto chiamato TextView. Si tratta di un oggetto che estende la classe View,  questa  normalmente viene usata per creare  elementi dell’interfaccia Grafica, nella fattispecie una TextView serve appunto per mostrare del testo. La prima cosa che dobbiamo fare quindi è importare tale oggetto nella nostra Activity (se non sapete cosa é un’Activity vi rimando alla lezione 2):

import android.widget.TextView;

Ora possiamo creare un oggetto di questo tipo all’interno della nostra classe, nel metodo onCreate scriviamo:

TextView localText = new TextView(this);

Una volta che abbiamo istanziato l’oggetto TextView possiamo assegnarli il testo che vogliamo mostrare, per farlo si utilizza il metodo setText:

localText.setText("Hello World from Italialinux");

Se provassimo a lanciarlo ora, non vedremo ancora il nostro testo in quanto dobbiamo ancora farlo mostrare all’interno dell’Activity. Per fare questo usiamo il metodo setContentView dell’activity:

setContentView(localText);

Quest’ultima istruzione è quella che mostra effettivamente la TextView. Se state seguendo le lezioni allora il codice completo dell’Activity sarà il seguente:

package italialinux.example;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
 
public class FirstActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	TextView localText = new TextView(this);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        localText.setText("Hello from a TextView");
        setContentView(localText);
    }
}

Proviamo quindi a lanciare l’applicazione e il risultato sarà quello mostrato in figura:

Come possiamo vedere non è cambiato molto rispetto alla lezione precedente, se non per il fatto che abbiamo stampato un messaggio personalizzato. Notiamo che abbiamo definito la stringa da stampare direttamente tramite la setText della view. Una delle comoditá del framework di android é la possibilitá di gestire i contenuti e il layout mediante l’XML. Ora riscriviamo lo stesso progetto utilizzando anche gli XML e la classe R.

Apriamo la cartella res/values da Eclipse, vi dovrebbe apparire una schermata simile alla seguente:

Che se non é stato gia modificato conterrá due elementi:

  • hello con valore Hello World, ItalialinuxExample
  • app_name con valore ItalialinuxExample

(ovviamente se state seguendo l’esempio). Se passiamo alla visualizzazione XML avremo:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, FirstActivity!</string>
    <string name="app_name">Italiallinux First Example</string>
    <string name="newstring">Greetings from Italialinux</string>
</resources>

Quindi per poter far mostrare il testo che vogliamo ci basta modificare il contenuto della stringa hello. Ovviamente se riteniamo di non dover modificare le stringhe presenti, possiamo aggiungerne una, possiamo decidere se farlo direttamente dall’XML o usando l’interfaccia mostrata nella figura precedente (che altro non fa che scrivere l’XML per noi). Se usiamo l’interfaccia, premiamo il pulsante Add come tipo scegliamo String, ovviamente nel campo Name andrá il nome della variabile e nel campo Value la stringa che vogliamo mostrare. Nell’esempio ho creato la Stringa newstring con valore “Greetings From Italialinux”. Apriamo ora da Eclipse la cartella gen/italialinux.example/R.java, se vediamo all’interno della classe possiamo notare una variabile newstring, questa contiene il riferimento alla stringa dichiarata nell’XML, e se vogliamo richiamare la stringa newstring possiamo usare appunto la classe R:

R.string.newstring

Come possiamo intuire quindi la classe R serve appunto per accedere a tutti gli elementi della gui (e non solo) dichiarati nei vari XML. Se ricordate anche la view principale é stata richiamata utilizzando la classe R. Quindi ora per modificare il testo alla TextView utilizzando la stringa appena create ci basta dare sostituire la setText vista precedentemente con la seguente:

 tv.setText(R.string.newstring);

Il risultato sará il seguente:


Bene per questa lezione é tutto, la prossima lezione vedremo come funzionano i pulsanti.

Per scaricare i sorgenti della lezione andate qua

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.