Cum să lansezi o activitate nouă în Android?

Î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!

Advertisements
Cum să lansezi o activitate nouă în Android?

4 thoughts on “Cum să lansezi o activitate nouă în Android?

  1. 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)

    1. Andrei says:

      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());
      }

  2. Cristi says:

    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!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s