Skip to content

3. Activitati si intenturi

iuliap edited this page Jul 2, 2014 · 3 revisions

Activity

O activitate este o componenta a unei aplicatii care reprezinta un ecran. Cu acesta utilizatorii pot interactiona. O aplicatie este formata din mai multe activitati. Cand vrem sa cream o activitate trebuie sa scriem o clasa care extinde clasa Activity. Clasa Activity contine o serie de metode pe care le vom suprascrie pentru a extinde functionalitatea clasei de baza.

public class ExampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // The activity is being created.
    }
    @Override
    protected void onStart() {
        super.onStart();
        // The activity is about to become visible.
    }
    @Override
    protected void onResume() {
        super.onResume();
        // The activity has become visible (it is now "resumed").
    }
    @Override
    protected void onPause() {
        super.onPause();
        // Another activity is taking focus (this activity is about to be "paused").
    }
    @Override
    protected void onStop() {
        super.onStop();
        // The activity is no longer visible (it is now "stopped")
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // The activity is about to be destroyed.
    }
}

onCreate

Metoda este apelata in momentul in care se creaza activitatea. Aici vom initializa compentele ferestrei. Pentru a face elementele de pe fereastra vizibile, este necesar sa apelam functia setContentView. Astfel atribuim activitatii un fisier xml cu interfata dorita.

setContentView(R.layout.content_layout_id);

Acum putem sa referim elementele declarate in xml din codul Java.

Button buton=findViewById(R.id.buton1);

Setarea evenimentelor pe elementele grafice

Pentru a putea utiliza butoanele create, trebuie sa le legam de actiunea pe care dorim sa o execute. Putem face asta prin functia setOnClickListener(), ca in exemplul urmator:

public class MyActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);

         setContentView(R.layout.content_layout_id);

         final Button button = (Button) findViewById(R.id.button_id);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click
 Toast.makeText(getApplicationContext(), "Button clicked!!!", Toast.LENGTH_LONG).show();
             }
         });
     }
 }

Intenturi

Intent-ul este evenimentul prin care doua activitati comunica. Deoarece pe ecran este afisata o singura activitate odata, avem nevoie de o activitate principala care sa genereze alte activitati. Acest lucru se realizeaza prin crearea unui intent:

Intent intent = new Intent(MainActivity.this, NewActivity.class);
startActivity(intent);

Fiecare activitate nou creata trebuie declarata in fisierul AndroidManifest.xml. Declararea se face astfel:

<activity
    android:name=".New_Activity"
    android:label="new_activity" >
</activity>

In multe situatii, activitatea noua are nevoie de niste parametrii provenind din prima activitate. Acesti parametrii sunt pasati cu ajutorul metodei putExtra(String nume, valoare). Valoarea pasata poate sa fie de aproape orice tip. Activitatea nou creata va prelua datele transmise cu ajutorul metodei getStringExtra(nume), aceasta existand in mai multe variante in functie de tipul pe care dorim sa il obtinem. In Main_Activity:

 String name="aaaa";
 Intent intent=new Intent(Main_Activity.this, New_Activity.class);
 intent.putExtra("name", name);
 startActivity(intent);

In New_Activity:

 Bundle b = new Bundle();
 b = getIntent().getExtras();
 String name = b.getString("name");
 System.out.println(nume);