-
Notifications
You must be signed in to change notification settings - Fork 26
3. Activitati si intenturi
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.
}
}
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);
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();
}
});
}
}
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);