
Abbiamo già accennato nel corso delle altre lezioni il concetto di activity. Oggi impareremo a muoverci fra 2 activity differenti.
Possiamo immaginare il concetto di activity con quello di una schermata al cui interno possono esserci una o più View.
Innanzitutto creiamo un nuovo progetto Android su Eclipse come visto nelle precedenti lezioni.
Chiamiamo il progetto come vogliamo (ad esempio “EsempioActivity”) e quando ci chiede il nome della prima activity sostituiamo il nome in “FirstActivity”.
Nel file activity_first.xml tramite l’editor grafico inseriamo un immagine (come visto nella lezione4) ,ad esempio una freccia.
Creiamo ora la seconda activity: dal Package Manager clicchiamo col tasto dx del mouse, New->File e inseriamo come nome “SecondActivity.java”, inserendo questo nuovo file nella cartella src/com.example.esempioactivity. Il risulato dovrebbe essere questo:
Nel file appena creato scriviamo il codice:
public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); } }
Andiamo ora a creare il layout di questa seconda activity: sempre col tasto dx del mouse sul Package Manager, clicchiamo su New->Android XML File e sotto la cartella “layout” creiamo il file “activity_second.xml”. Modificate il layout come preferite.
Torniamo ora al file FirstActivity.java e come spiegato nella lezione precedente associamo un’azione al tocco della ImageView tramite il codice:
ImageView freccia=(ImageView)findViewById(R.id.imageView1); freccia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } });
Stavolta dentro al blocco onClick() però non inseriamo un toast ma questo codice:
startActivity(new Intent(FirstActivity.this,SecondActivity.class));
Il concetto di Intent è piuttosto complicato, lo riprenderemo in seguito. Con questo codice riusciamo a passare dalla nostra prima schermata alla seconda.
Il codice completo dovrebbe apparire così:
public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); ImageView freccia=(ImageView)findViewById(R.id.imageView1); freccia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(FirstActivity.this,SecondActivity.class)); } }); } }
Abbiamo quasi finito, ci resta solo da dichiarare la seconda activity nel file “androidManifest.xml”.
Questo file ha un’elevata importanza per lo sviluppo di un’applicazione Android, nelle lezioni seguenti capiremo la sua utilità.
Apriamo quindi questo file e inseriamo il codice:
<activity android:name="com.example.esempioactivity.SecondActivity" > </activity>
Il tutto dovrebbe apparire così:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.esempioactivity" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.esempioactivity.FirstActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.esempioactivity.SecondActivity" > </activity> </application> </manifest>
Eseguiamo quindi l’applicazione come descritto nella Lezione3. Per eventuali problemi e chiarimenti segnalateli nei commenti.
Puoi guardare tutte le lezioni passate consultando l’indice del corso di programmazione android