09 Prima Applicazione – Codice

Nella precedente lezione abbiamo descritto il funzionamento della nostra applicazione e costruito la grafica, adesso doniamo vita alla nostra grafica, cioè scriviamo il codice che permetterà alla nostra app di interagire con l’utente.
Aprite il file java MainActvivity (se non avete dato un altro nome al momento della creazione) all’interno della cartella “java”.
I due metodi onCreateOptionsMenu e onOptionsItemSelected servono per gestire il pulsante opzioni che ovviamente noi non useremo, potete anche cancellarli.

Partiamo con l’inserire le seguenti variabili globali (quindi all’interno della classe, ma al di fuori di ogni metodo):

LinearLayout contenitore;
EditText nome_colore;
TextView colore_scelto;

In tali variabili andremo adesso a salvare nel metodo onCreate l’istanza degli oggetti che abbiamo inserito nell’xml. Se vengono segnate di rosso posizionatevi con il cursore e, tenendo premuto alt, premete invio per far apparire i suggerimenti automatici. Cliccate su quello che vi suggerirà di importare una certa libreria, dovrebbe essere il primo suggerimento.

Nel metodo onCreate sono già presenti le due seguenti righe, diamogli un’occhiata:

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

La prima chiama funzioni della classe padre che servono per far partire l’activity, non vi serve sapere di più, tanto è una riga sempre presente e che si crea da sola.
La seconda è più interessante, il metodo setContentView imposta quale layout.xml deve essere visibile all’apertura dell’applicazione. Si utilizzerà sempre questo metodo se vogliamo cambiare pagina (per esempio), ma per ora non ci interessa.

Aggiungiamo al di sotto di queste due righe il seguente codice:

contenitore=(LinearLayout)findViewById(R.id.contenitore);
nome_colore=(EditText)findViewById(R.id.nome_colore);
colore_scelto=(TextView)findViewById(R.id.colore_scelto);

Con queste tre righe le variabili “nome_colore”, “colore_scelto” e “contenitore” sono diventate dei puntatori ai due oggetti e al layout che abbiamo nell’xml, e tramite questi puntatori potremo modificare le proprietà di tali oggetti.

Partiamo ora a scrivere i due metodi che si azioneranno quando l’utente premerà i due bottoni.
Il primo è quello del pulsante colora:

public void colora(View v) 
{
    String colore=nome_colore.getText().toString();
    if(colore.equals("rosso"))
    {
        colore_scelto.setText("rosso");
        contenitore.setBackgroundColor(Color.RED);
    }
}

Osservazioni: il nome del metodo dev’essere uguale a quello scritto nella proprietà onClick del button, e View passa al metodo il puntantore che punta al pulsante premuto (utile se più pulsanti utilizzano uno stesso metodo).
Nella seconda riga leggo quello che ha scritto l’utente.
Lo confronto poi con un if per vedere il colore scritto e utilizzo i puntatori per modificare lo sfondo del background e il testo della TextView che mi dice l’ultimo colore scelto.
Provate a scrivere altri if con altri colori. Se l’utente premerà il pulsante senza scrivere niente o scrivendo un colore non presente in nessun if non accadrà niente.

Scriviamo adesso il codice del secondo pulsante, reset:

public void reset(View v)
{
    nome_colore.setText("");
    contenitore.setBackgroundColor(Color.WHITE);
    colore_scelto.setText("New Text");
}

Osservazioni: questo metodo riporta l’applicazione alle condizioni iniziali, quindi cancelliamo quello scritto nell’editText dall’utente: lo sfondo ritorna bianco e la textView presenta la scritta iniziale.

Codice Totale

package falci.angelo.helloword;//voi avrete un nome diverso
//librerie importate
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {

    LinearLayout contenitore;
    EditText nome_colore;
    TextView colore_scelto;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        contenitore=(LinearLayout)findViewById(R.id.contenitore);
        nome_colore=(EditText)findViewById(R.id.nome_colore);
        colore_scelto=(TextView)findViewById(R.id.colore_scelto);
    }
    public void colora(View v) 
    {
        String colore=nome_colore.getText().toString();
        if(colore.equals("rosso"))
        {
            colore_scelto.setText("rosso");
            contenitore.setBackgroundColor(Color.RED);
        }
    }
    public void reset(View v)
    {
        nome_colore.setText("");
        contenitore.setBackgroundColor(Color.WHITE);
        colore_scelto.setText("New Text");
    }
}

Adesso la nostra applicazione è pronta, non ci resta che provarla facendo partire un emulatore android o collegando il nostro cellulare e installandola.
Se non siete capaci non perdevi la prossima guida in cui spiegherò come far partire un’applicazione su un emulatore o sul cellulare.
Scrivetemi pure nei commenti se ho spiegato male e qualcosa non vi è chiara.
Alla prossima!

Please follow and like us: