Forum » Programiranje » [Android]Vrnitev v "parent" activity
[Android]Vrnitev v "parent" activity
KernelPanic ::
Spostovani!
Imam aplikacijo, pri kateri se je treba logirati v sistem in to storim z LoginActivity. Ob uspesni prijavi spawnam nov activity - za pregled produktov. Dodal sem gumb za odjavo v ActionTab v novem acivity-ju in sedaj bi rad, da me gumb odjava "popelje" nazaj na LoginActivity in da ME NE vrze ven iz aplikacije. Tukaj je koda za launch novega activity-ja:
Lp,
M.
Imam aplikacijo, pri kateri se je treba logirati v sistem in to storim z LoginActivity. Ob uspesni prijavi spawnam nov activity - za pregled produktov. Dodal sem gumb za odjavo v ActionTab v novem acivity-ju in sedaj bi rad, da me gumb odjava "popelje" nazaj na LoginActivity in da ME NE vrze ven iz aplikacije. Tukaj je koda za launch novega activity-ja:
public void onBtnLoginClick(View v) { this.setUsername((EditText)findViewById(R.id.field_username)); this.setPassword((EditText)findViewById(R.id.field_password)); String strUsername=this.username(); String strPassword=this.password(); if(this.loginToDatabase(strUsername, CActivityLoginScreen.md5(strPassword))) { Intent newActivityIntent = new Intent(this, CActivityBrowseMerchandise.class); this.startActivity(newActivityIntent); } else { Toast.makeText(this, "Napaka: neveljaven uporabnik", Toast.LENGTH_SHORT).show(); this.setUsername(strEmptyString); this.setPassowrd(strEmptyString); } // if } // onBtnLoginClickIn tukaj je koda za izhod iz activity-ja, zadolzenega za pregled produktov:
public void onBtnLogoutClick(View v) { finish(); } // onBtnLogoutClickTorej, zakaj me zgornja koda (klic funkcije finish()) vrze iz aplikacije in ne nazaj na login activity?
Lp,
M.
KernelPanic ::
Torej, originalni activity je CActivityLogin, iz katerega bi rad ob uspesnem login-u v sistem pognal activity CActivityMerchandiseBrowser, v katerem je gumb "Odjava", s katerim se odjavim iz sistema in pristanem nazaj v CActivityLogin.
Aldo ::
Napiši tako:
public void onBtnLogoutClick(View v) { startActivity(new Intent(this, CActivityMerchandiseBrowser.class)); finish(); }
Marat ::
Torej bi zadeva potekala nekako tako (psevdo koda):
CActivityLogin:
CActivityMerchandiseBrowser:
To je en način kako naredit ta prehod iz enega v drug activity.
CActivityLogin:
loginButton.setOnClickListener( login(); Intent(CActivityMerchandiseBrowser); startActivity(intent); CActivityLogin.this.finish(); );
CActivityMerchandiseBrowser:
logoutButton.setOnClickListener( logout(); Intent(CActivityLogin); startActivity(intent); CActivityMerchandiseBrowser.this.finish(); );
To je en način kako naredit ta prehod iz enega v drug activity.
Mavrik ::
Tako pa že - v Aldotovem primeru bi namreč umrl LoginActivity in ne bi dobil željenega efekta. KernelPanicu sem sicer že razložil, da namesto "finish()" v njegovem primeru pride v poštev FLAG_ACTIVITY_CLEAR_TOP (ki zapre trenuten activity in v back-stacku poišče že obstoječi activity in ga pripelje v ospredje), sam potem niti dovolj ni uspel premisliti kaj dela (in pogledati dokumentacije) da ne bi naredil neumnosti.
The truth is rarely pure and never simple.
KernelPanic ::
Tako pa že - v Aldotovem primeru bi namreč umrl LoginActivity in ne bi dobil željenega efekta. KernelPanicu sem sicer že razložil, da namesto "finish()" v njegovem primeru pride v poštev FLAG_ACTIVITY_CLEAR_TOP (ki zapre trenuten activity in v back-stacku poišče že obstoječi activity in ga pripelje v ospredje), sam potem niti dovolj ni uspel premisliti kaj dela (in pogledati dokumentacije) da ne bi naredil neumnosti.No pa ce res ne razumem, kam stlacit ta FLAG_ACTIVITY_CLEAR! Bom se bolj poglobil v dokumentacijo, hvala vseeno, sedaj bom pa tole kodo sprobal, ki ste mi jo spisali!
Najlepsa hvala,
M.
KernelPanic ::
Aha se nekaj: Ob uspesni prijavi uporabnika v sistem prejmem iz mysql serverja preko php skripte v CActivityLogin ime in priimek uporabnika, ki se je logiral v sistem. Kako sedaj ti dve vrednosti (ime in priimek) prenesem v CActivityMerchandiseBrowser, da bom v ActionTabu-u poleg gumba "Odjavi" dodal se ime in priime logiranega uporabnika?
Marat ::
KernelPanic je izjavil:
Aha se nekaj: Ob uspesni prijavi uporabnika v sistem prejmem iz mysql serverja preko php skripte v CActivityLogin ime in priimek uporabnika, ki se je logiral v sistem. Kako sedaj ti dve vrednosti (ime in priimek) prenesem v CActivityMerchandiseBrowser, da bom v ActionTabu-u poleg gumba "Odjavi" dodal se ime in priime logiranega uporabnika?
V CActivityLogin dodaš ime in priimek kot String prek Bundle v Intent:
Intent intent = new Intent(CActivityLogin.this, CActivityMerchandiseBrowser.class); intent.putExtra("ime", imePriimek); // prvi parameter je ključna beseda, drugi pa String ki ga želiš poslati startActivity(intent);
V CActivityMerchandiseBrowser pa prejmeš te podatke tako:
Intent intent = getIntent(); String imePriimek = intent.getStringExtra("ime");
Zgodovina sprememb…
- spremenil: Marat ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Android] Bluetooth aplikacijaOddelek: Programiranje | 1089 (952) | marjan_h |
» | [Android] Program se sesuje pri zagonuOddelek: Programiranje | 841 (650) | Xpie |
» | [android] java.lang.RuntimeExceptionOddelek: Programiranje | 1076 (768) | piki12 |
» | [Android]Cudno obnasanje aplikacije in emulatorjaOddelek: Programiranje | 1308 (1137) | KernelPanic |
» | [Android]Upper Banner vprasanjeOddelek: Programiranje | 2316 (2222) | KernelPanic |