Simulera "back" knappen?

Discussion in 'Frågor, support och diskussion' started by crazyrobban, Jun 28, 2010.

  1. crazyrobban

    crazyrobban Adult Droid Medlem

    Joined:
    Dec 10, 2009
    Messages:
    582
    Likes Received:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Jag har skrivit en app i testsyfte för att lära mig att koda java och nu fungerar det simpla jag satt upp.

    Problemet är att appen lagrar en satans massa sidor.
    Typ,

    Säg att jag har 2 sidor, A och B.
    Om appen börjar på sida A, och jag trycker på en knapp jag kodat som tar mig till B, så om jag trycker på min egen-skapade knapp "back" så kommer jag tillbaka till A. Men det är inte detsamma som att trycka på den fysiska "back" knappen.

    Någon som kan hjälpa mig?

    Ledsen över den värdelösa definitionen. :innocent:
     
  2. johannilsson

    johannilsson Adult Droid Medlem

    Joined:
    Jun 23, 2009
    Messages:
    577
    Likes Received:
    8

    MINA ENHETER

    Om jag förstår dig rätt så är det bara att kalla på finish() från B.
     
  3. crazyrobban

    crazyrobban Adult Droid Medlem

    Joined:
    Dec 10, 2009
    Messages:
    582
    Likes Received:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Spännande!
    Så i pseudo-kod så innebär det:
    Starta appen, hämtar aktivitet/layout A
    Trycker på första knappen, hämtar aktivitet B (som laddar layout B)
    Trycker på min egen skapade "back", som avslutar aktivitet B och då tas jag tillbaka till A.

    Right?

    Ska genast kolla, tackar! :-)

    /EDIT

    johannilsson, du är kung! :-)
     
  4. droidgren

    droidgren Senior Droid Hedersmedlem

    Joined:
    May 26, 2009
    Messages:
    1 601
    Likes Received:
    153
    Telefon:
    Google Pixel 6 Pro

    MINA ENHETER

    Telefon:
    Google Pixel 6 Pro
    Läs igenom "Android lifecycle" och studera diagrammet speciellt noga.
    http://developer.android.com/guide/topics/fundamentals.html#lcycles
    Läser du där kan du se följande:
    och

    Nu är jag ingen expert på detta men det verkar vara bättre om du använder onStop() om du vill kunna switcha framåt tillbaka mellan dina aktivititer, och onFinish() om du vill stänga ner aktiviten för gott.
     
  5. sniff

    sniff Youth Droid Medlem

    Joined:
    Oct 3, 2009
    Messages:
    132
    Likes Received:
    0

    MINA ENHETER

    låter som att du är ute efter följande

    Code:
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
        	if (keyCode == KeyEvent.KEYCODE_BACK) {
                // om du är på sida B, gå till sida A
                // annars this.moveTaskToBack(true); för att pausa appen
            }
        }
    
     
  6. crazyrobban

    crazyrobban Adult Droid Medlem

    Joined:
    Dec 10, 2009
    Messages:
    582
    Likes Received:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Tack för era svar,

    onStop() låter vettigt i och med att det är views inom min app som det rör sig om. onFinish() kanske platsar sig bättre på "Quit" knappen, om jag nu gör en sån. :)

    @Sniff,
    Nja, med att simulera "back" knappen var jag ute efter att göra en grafisk knapp som gjorde samma sak som den faktiska back-knappen.

    Innan jag körde onFinish så startade en ny aktivitet med indexskärmen istället för att backa till den tidigare startade index skärmen.
     
  7. johannilsson

    johannilsson Adult Droid Medlem

    Joined:
    Jun 23, 2009
    Messages:
    577
    Likes Received:
    8

    MINA ENHETER

    Du ska inte kalla onStop och onPause etc själv, anropa finish() så kallas dessa automagiskt om du behöver städa efter dig.

    Från dokumentationen för finish.

     
  8. crazyrobban

    crazyrobban Adult Droid Medlem

    Joined:
    Dec 10, 2009
    Messages:
    582
    Likes Received:
    32
    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge

    MINA ENHETER

    Operatör:
    DGC
    Telefon:
    Galaxy Note Edge
    Platta:
    Samsung Galaxy Tab Pro 8.4
    ROM:
    CM 13
    Jag såg det också. :-)

    (Blev även lite trail and error i och med att min egen-gjorda back knapp slutade fungera när jag körde onStop istället för Finish().

    Jäkligt kul att jag kommit igång, och ännu roligare att det finns så pass många hjälpsamma på forumet. :)