În cadrul platformei Android se pune foarte mult accentul pe reutilizarea şi reintegrarea secvenţelor de cod. Soluţia creată pentru a îndeplini acest deziderat este reprezentată de noţiunea de Intent (pe româneşte “intenţie“). Aşadar se specifică în cod “intenţia” de a lansa o activitate nouă.
Există două tipuri de intenţii: cele furnizate de SDK şi cele create de dezvoltator în funcţie de caz.
Exemple din SDK (pentru mai multe detalii click aici) :
Toate activităţile utilizate sunt declarate în AndroidManifest, iar activitatea principală, cea care va fi prima lansată în execuţie are un mod particular de declarare:
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
Structura generală pentru a lansa un nou Intent este următoarea:
Intent intent=new Intent(AcitvitateCurenta.this, UrmatoareaActivitate.class); startActivity(intent);
Un exemplu simplu de utilizare a noţiunii de Intent: o aplicaţie care conţine două activităţi, Activitatea1 şi…Activitatea2, iar trecerea de la una la cealaltă se realizează cu ajutorul a două butoane.
Cod XML:
ex1.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/white" android:gravity="center" android:orientation="vertical"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@drawable/black"> </TextView> <Button android:id="@+id/btnUrmatoarea" android:layout_width="120dip" android:layout_height="50dip" android:text="Urmatoarea" android:onClick="btnUrmatoarea_onClick"> </Button> </LinearLayout>
ex2.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/white" android:gravity="center" android:orientation="vertical"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@drawable/orange"> </TextView> <Button android:id="@+id/btnAnterioara" android:layout_width="120dip" android:layout_height="50dip" android:text="Anterioara" android:onClick="btnAnterioara_onClick"> </Button> </LinearLayout>
Cod java:
Activitatea1.java
package org.ex.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class Activitatea1 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ex1); TextView textView = (TextView) findViewById(R.id.TextView01); textView.setText("Aceasta este prima activitate"); } public void btnUrmatoarea_onClick(View view) { Intent act2=new Intent(this, Activitatea2.class); startActivity(act2); } }
Activitatea2.java
package org.ex.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class Activitatea2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ex2); TextView textView = (TextView) findViewById(R.id.TextView01); textView.setText("Aceasta este a doua activitate"); } public void btnAnterioara_onClick(View view) { Intent act2=new Intent(this, Activitatea1.class); startActivity(act2); } }
După ce alcătuiţi mini-aplicaţia de test, ar trebui să obţineţi screen-uri de genul:
Sper că “intenţia” mea a fost utilă 😛
P.S.: citiţi primul comment!
Acest tutorial este corect şi nu prea 😀 Special nu am tratat un anumit aspect care influenţează buna funcţionare a aplicaţiei.
Detaliul omis este destul de simplu de observat. Aştept detalierea acestui aspect.
Să vedem cine va fi primul 😀
Succes! (deşi nu aveţi nevoie)
un bloc try, catch cand se lanseaza intentia?
try
{
Intent act2 = new Intent(this, Activitatea2.class);
startActivity(act2);
}
catch(Exception exc)
{
Log.e(null, exc.getMessage().toString());
}
cum lansezi o activitate pe Android? simplu.. vii la fac, deschizi laptopul si lansezi prezentarea 🙂
colegii te privesc, invata si iti multumesc pt efort!
gazda emisiunii iti ureaza: la mai multe si mai frumoase!
Foarte fain! Merci frumos! 🙂