» »

[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:
    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.

Marat ::

Kakšno imaš ime novega activityja? Probaj tko: ImeActivityja.this.finish();

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();
}

Mavrik ::

Tole je... narobe ;)
The truth is rarely pure and never simple.

Marat ::

Torej bi zadeva potekala nekako tako (psevdo koda):

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 ::

Mavrik je izjavil:

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 ()

KernelPanic ::

Aha, hvala, ravno gledam primer ja! Super!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Android] Bluetooth aplikacija

Oddelek: Programiranje
51097 (960) marjan_h
»

[Android] Program se sesuje pri zagonu

Oddelek: Programiranje
7852 (661) Xpie
»

[android] java.lang.RuntimeException

Oddelek: Programiranje
141085 (777) piki12
»

[Android]Cudno obnasanje aplikacije in emulatorja

Oddelek: Programiranje
71316 (1145) KernelPanic
»

[Android]Upper Banner vprasanje

Oddelek: Programiranje
112343 (2249) KernelPanic

Več podobnih tem