ProgettAzione tecnologie in movimento - V anno Unità 4 - Applicazioni per i sistemi mobili Compito in classe proposto Partendo dall’App appena realizzata sul volume di riferimento, modificarla affinché, cliccando sul numero 4, anziché tornare alla prima schermata, si apra una nuova schermata (terza activity) composta da elementi grafici a piacere. Unità 4 - Realizzare applicazioni per la comunicazione in rete Soluzione compito in classe proposto Per realizzare quanto richiesto dovremo modificare innanzitutto il file NewActivity.java poiché è il comportamento della ImageView del numero 4 che va modificato (resta invece invariato il file MainActivity. java). Vediamo il codice originale di NewActivity.java con evidenziata in giallo la parte da modificare: NewActivity.java public class NewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new); ImageView tre_view=(ImageView)findViewById(R.id.imageView1); tre_view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast t=Toast.makeText(NewActivity.this,"NON HAI CAMBIATO SCHERMATA (ACTIVITY)",Toast.LENGTH_LONG); t.show(); } }); ImageView quattro_view=(ImageView)findViewById(R.id.imageView2); quattro_view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(NewActivity.this,MainActivity.class)); } }); } } © Mondadori Education ProgettAzione tecnologie in movimento - V anno Soluzione compito in classe proposto Basterà sostituire MainActivity.class con TerzaActivity.class, per far sì che, cliccando sul numero 4, anziché tornare alla prima schermata, si apra una nuova schermata (terza activity): startActivity(new Intent(NewActivity.this,MainActivity.class)); Creiamo ora la TerzaActivity: dal Package Explorer clicchiamo col tasto destro del mouse su New→Class e inseriamo come nome TerzaActivity.java, salvando questo nuovo file nella cartella src/com.nuova.newapp cioè la stessa che già contiene MainActivity.java e NewActivity.java. Poiché l’esercizio richiede solo la presenza di elementi grafici passivi, senza specifiche attività legate ad essi, il codice dentro TerzaActivity.java si riduce al seguente: TerzaActivity.java package com.nuova.newapp; import android.app.Activity; import android.os.Bundle; public class TerzaActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ter); } } Il codice evidenziato in giallo serve a creare una corrispondenza fra le immagini del layout descritto in activity_ter.xml e il codice Java. A questo punto creiamo il layout di questa nuova activity: sempre con il tasto destro del mouse sul Package Explorer, clicchiamo su New Other/Android/Android XML File e sotto la cartella layout (cioè la stessa che già contiene il file activity_main.xml e activity_new.xml) creiamo il file activity_ter.xml. Tramite l’interfaccia grafica drag&drop trasciniamo una nuova TextView (sotto la voce Form Widget) sull’anteprima e vi scriviamo la stringa “TERZA SCHERMATA (NEW ACTIVITY)”. © Mondadori Education ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Allo stesso modo trasciniamo, a piacere, delle ImageView (sempre sotto la voce Images & Media) sull’anteprima. Nella schermata che compare selezioniamo le immagini desiderate. Alla fine delle operazioni l’interfaccia della terza schermata potrebbe essere simile a quella mostrata nella figura 1. Figura 1 - Graphical Layout di activity_ter.xml Abbiamo quasi finito, resta solo da dichiarare la nuova activity nel file AndroidManifest.xml selezionabile dal Package Explorer, uno degli ultimi file in basso. Il codice evidenziato in giallo serve a inserire la nuova activity (TerzaActivity) nell’applicazione autorizzandola a essere eseguita e a interagire con le altra activity. AndroidManifest.xml <activity android:name="com.nuova.newapp.NewActivity" > </activity> <activity android:name="com.nuova.newapp.TerzaActivity"> </activity> © Mondadori Education ProgettAzione tecnologie in movimento - V anno Soluzione compito in classe proposto Mandiamo in esecuzione l’App sul dispositivo virtuale selezionando Run Run As Android Application. Il risultato sarà la visualizzazione della schermata (main activity - figura 2) principale sull’emulatore. Cliccando sul 2 apparirà la seconda schermata (new activity - figura 3). Da essa, cliccando sul 4, si passerà alla terza schermata (terza activity - figura 4) oggetto di questo compito. Figura 2 main activity © Mondadori Education Figura 3 new activity ProgettAzione tecnologie in movimento - V anno Figura 4 terza activity