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
} // onBtnLoginClick
In tukaj je koda za izhod iz activity-ja, zadolzenega za pregled produktov: public void onBtnLogoutClick(View v)
{
finish();
} // onBtnLogoutClick
Torej, 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 | 1128 (991) | marjan_h |
» | [Android] Program se sesuje pri zagonuOddelek: Programiranje | 882 (691) | Xpie |
» | [android] java.lang.RuntimeExceptionOddelek: Programiranje | 1116 (808) | piki12 |
» | [Android]Cudno obnasanje aplikacije in emulatorjaOddelek: Programiranje | 1360 (1189) | KernelPanic |
» | [Android]Upper Banner vprasanjeOddelek: Programiranje | 2421 (2327) | KernelPanic |