Hjälp med en helt vanlig intent

Diskussion i 'Frågor, support och diskussion' startad av Swesnow, 23 jun 2012.

  1. Swesnow

    Swesnow Teen Droid Medlem

    Blev medlem:
    23 mar 2011
    Inlägg:
    446
    Mottagna gillanden:
    24

    MINA ENHETER

    Hej!

    Jag har gett mig på det här med androidutveckling och är i färden med att utveckla en app (mest på skoj). Nu har jag kommit till delen där jag vill starta en intent vid ett knapptryck istället för att bara använda "setContentView i min metod. Jag försöker följa guiden på android developers men hur jag än försöker så blir det bara FC. Antagligen har jag bara gjort nåt litet fel som ni mer erfarna ser direkt men jag har kollat det här väldigt länge nu och hittar inget fel.

    MainActivity:
    http://pastie.org/4139372

    AboutActivity:
    http://pastie.org/4139382

    AndroidManifest:
    http://pastie.org/4139390

    Jag är tacksam för all hjälp som jag kan få :)
     
  2. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 350
    Mottagna gillanden:
    831
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Du har lagt en activity-tag i en annan activity-tag i AndroidManifest. Alla activity-taggar ska ligga på samma nivå, direkt i application-taggen.

    Du bör se hyffsat vettiga felmeddelanden i LogCat.
    Jag testade att lägga en activity i en annan och fick följande meddelande:
    06-23 23:05:59.938: E/AndroidRuntime(3558): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {se.nextsource.android.test/se.nextsource.android.test.TestActivity}; have you declared this activity in your AndroidManifest.xml?

    Edit:
    Iofs borde du inte få ett fel eftersom aboutClicked aldrig anropades, men du kanske inte visade all din kod.
     
    Last edited: 23 jun 2012
    Swesnow gillar detta.
  3. Swesnow

    Swesnow Teen Droid Medlem

    Blev medlem:
    23 mar 2011
    Inlägg:
    446
    Mottagna gillanden:
    24

    MINA ENHETER

    Jag förstår hur du menar med att den ligger i den andra eftersom den ligger före </activity> men vart annars ska man lägga den. Eftersom min AboutActivity inte har en closing tag utan bara hamnarbpå en linje borde väl det inte spela någon roll skulle man tro. Jag har för mig att jag fick något som liknade det därvi min logcat, att den inte hittade den i manifestet. Dock så har jag följt guiden på androiddevelopers gällande hur manifestet skulle se ut, dock så kan jag väl ha fattat fel. Gällande om det är nåt jag inte visar så har jag med allt förutom minalayouts men om det var något fel med dem hade jag nog fått ett synrax error.

    Edit: Vad menar du med att aboutclicked aldrig anropades?
     
  4. GuiceU

    GuiceU Youth Droid Medlem

    Blev medlem:
    3 dec 2011
    Inlägg:
    169
    Mottagna gillanden:
    17

    MINA ENHETER

    Om du kollar här så ligger den inte i den andra:

    http://pastie.org/4142052

    Som sagt så är det formoderligen det som är felet.
     
  5. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 350
    Mottagna gillanden:
    831
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Lägg alla activity-taggar på samma nivå. En activity-tagg får inte ligga inuti en annan. Lägg den lämpligtvis efter den avslutande activity-taggen för MainActivity.

    Du har en metod som heter aboutclicked(), men du har inte kopplat någon eventhandler till din knapp som i sin onClick() anropar aboutclicked(). Därför körs aldrig metoden aboutclicked().

    Posta gärna länkar till de tutorials du har följt så kan jag kika på vad det är du försöker göra.
     
    Swesnow gillar detta.
  6. Swesnow

    Swesnow Teen Droid Medlem

    Blev medlem:
    23 mar 2011
    Inlägg:
    446
    Mottagna gillanden:
    24

    MINA ENHETER

    Det räckte faktiskt med att bara lägga activity tagen över MainActivity tagen. Gällande eventhandler och det så definerar jag bara knappen genom att lägga till android:onClick="aboutclicked" i layouten. Därmed körs metoden.
     
  7. e7andy

    e7andy Professional Droid Hedersmedlem

    Blev medlem:
    14 okt 2009
    Inlägg:
    2 350
    Mottagna gillanden:
    831
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Aha, så går det att göra också. Jag skulle dock undvika att lägga sånt i XML även om det går. Det är bra att separera layout och kod så mycket som möjligt.
     
    Last edited: 24 jun 2012