Noriu padaryti kažką paprasto "Android" programoje. Kaip galima grįžti prie ankstesnės veiklos.
Kokio kodo man reikia, kad grįžčiau į ankstesnę veiklą?
"Android" veikla saugoma veiklos steke. Grįžimas prie ankstesnės veiklos gali reikšti du dalykus.
Naują veiklą atidarėte iš kitos veiklos naudodami startActivityForResult. Tokiu atveju galite tiesiog iš savo kodo iškviesti finishActivity() funkciją, ir ji'jus grąžins į ankstesnę veiklą.
Stebėkite veiklos steką. Kiekvieną kartą, kai pradedate naują veiklą su intencija, galite nurodyti intencijos vėliavą, pavyzdžiui, FLAG_ACTIVITY_REORDER_TO_FRONT
arba FLAG_ACTIVITY_PREVIOUS_IS_TOP
. Šią funkciją galite naudoti norėdami perskirstyti veiklas savo programoje. Tačiau nesu jais daug naudojęsis. Peržiūrėkite vėliavas čia: http://developer.android.com/reference/android/content/Intent.html
Kaip minėta komentaruose, jei veikla atidaryta naudojant startActivity()
, ją galima uždaryti naudojant finish()
.
Jei norite naudoti mygtuką "Up", galite tai sugauti onOptionsSelected(MenuItem item)
metodu, tikrindami elemento ID pagal android.R.id.home
, skirtingai nei R.id.home
, kaip minėta komentaruose.
Ar norite perimti atgalinio mygtuko elgsenos valdymą? Galite pakeisti grįžimo atgal mygtuką (pereiti prie konkrečios veiklos) vienu iš dviejų būdų.
"Android 1.6" ir vėlesnėms versijoms:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
Arba jei palaikote tik "Android 2.0" ar naujesnę versiją:
@Override
public void onBackPressed() {
// do something on back.
return;
}
Daugiau informacijos: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html