Autore Topic: tornare all'activity precedente - crash  (Letto 1505 volte)

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
tornare all'activity precedente - crash
« il: 02 Febbraio 2014, 13:12:34 CET »
0
Ciao a tutti, sono nuovo nel forum e nella programmazione android, provengo da iOS (e qui mi odierete XD) non conosco molto bene il java (praticaente 0) ma mi son messo in testa di imparare, con tutta la calma necessaria...

Sto provando a fare una semplice applicazione che mi permetta di cambiare activity e mi permetta di tornare indietro, finchè devo solo cambiare activity tutto fila liscio, il problema nasce nel momento in cui torno indietro.
Quando passo dall'activity A alla B e da questa alla C passo anche un'oggetto attraverso un extra nell'intent, ovviamente questo valore determina ciò che visualizzo nell'activity B e anche nella C:


Codice: [Seleziona]
                                       
Intent intent = new Intent(MainActivity.this, SezioniListActivity.class);
intent.putExtra("obj",obj);
startActivity(intent);

e lo riprendo cosi:
Codice: [Seleziona]
obj = (Obj) getIntent().getExtras().getSerializable("obj");

quando torno indietro l'applicazione cresha, io immagino che vada in cresh perchè l'extra dell'intent è vuoto e di conseguenza quando cerco di utilizzarlo cresha...ripeto che penso sia questo il motivo, essendo su android da 2 giorni potrei aver detto una cavolata...
ecco il logcat:


Codice: [Seleziona]
02-02 13:09:44.390: W/dalvikvm(12518): threadid=1: thread exiting with uncaught exception (group=0x41631ba8)
02-02 13:09:44.402: E/AndroidRuntime(12518): FATAL EXCEPTION: main
02-02 13:09:44.402: E/AndroidRuntime(12518): Process: com.example.testfun, PID: 12518
02-02 13:09:44.402: E/AndroidRuntime(12518): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testfun/com.example.testfun.SezioniListActivity}: java.lang.NullPointerException
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread.access$800(ActivityThread.java:135)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.os.Handler.dispatchMessage(Handler.java:102)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.os.Looper.loop(Looper.java:136)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread.main(ActivityThread.java:5017)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at java.lang.reflect.Method.invokeNative(Native Method)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at java.lang.reflect.Method.invoke(Method.java:515)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at dalvik.system.NativeStart.main(Native Method)
02-02 13:09:44.402: E/AndroidRuntime(12518): Caused by: java.lang.NullPointerException
02-02 13:09:44.402: E/AndroidRuntime(12518):         at com.example.testfun.SezioniListActivity.onCreate(SezioniListActivity.java:30)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.Activity.performCreate(Activity.java:5231)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-02 13:09:44.402: E/AndroidRuntime(12518):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-02 13:09:44.402: E/AndroidRuntime(12518):         ... 11 more


Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:tornare all'activity precedente - crash
« Risposta #1 il: 02 Febbraio 2014, 14:35:22 CET »
+2
La causa del crash, come riportato anche nel LogCat è dovuto al fatto che qualcosa alla linea 30 torna Null. Inanzitutto ti consiglio un approccio di questo genere (codice di esempio):

Codice (Java): [Seleziona]
        Bundle extras = getIntent().getExtras();
        if(extras!=null) {
        variabile = getIntent().getStringExtra("chiave");
        }

Secondo poi, potresti provare a mettere nell'AndroidManifest, nell'Activity, questo attributo:

Codice (XML): [Seleziona]
android:launchMode="singleTop"
Fammi sapere se funziona. In teoria questo attributo se l'Activity è già stata istanziata permette di riprenderla così com'è senza creare una nuova istanza.
SimoneDev @ Google Play Store

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
Re:tornare all'activity precedente - crash
« Risposta #2 il: 02 Febbraio 2014, 14:43:28 CET »
0
preciso! grazie mille, ora funziona proprio come serviva a me, ora è meglio se mi do una letta a quest launchMode perchè è la prima volta che lo incontro XD (2 giorni che uso android :) )



kikko088

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:tornare all'activity precedente - crash
« Risposta #3 il: 02 Febbraio 2014, 14:48:00 CET »
0
L'ho scoperto anche io oggi per la prima volta.  :D Documentazione ufficiale qui: <activity> | Android Developers.
« Ultima modifica: 02 Febbraio 2014, 14:51:32 CET da CrotaNexus »
SimoneDev @ Google Play Store

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
Re:tornare all'activity precedente - crash
« Risposta #4 il: 02 Febbraio 2014, 14:50:51 CET »
0
ahahah ottimo! scusa ancora la domanda stupida, perchè non vedo il tasto thanks? visto che hai risolto cosi velocemente volevo" thanksarti" ma non trovo il pulsante -.-

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:tornare all'activity precedente - crash
« Risposta #5 il: 02 Febbraio 2014, 14:53:28 CET »
0
Off-Topic:
Il pulsante Thanks si trova in alto a destra.

SimoneDev @ Google Play Store

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
Re:tornare all'activity precedente - crash
« Risposta #6 il: 02 Febbraio 2014, 14:59:02 CET »
0
bene....io non c'e l'ho! -.- ho lo 0 ho l'omino ma non il thanks sarà perchè sono appena iscritto?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:tornare all'activity precedente - crash
« Risposta #7 il: 02 Febbraio 2014, 15:39:59 CET »
+1
bene....io non c'e l'ho! -.- ho lo 0 ho l'omino ma non il thanks sarà perchè sono appena iscritto?

mi sa di si.

cmq ho messo io un thanks.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline kikko088

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus s
  • Sistema operativo:
    OSx e Win
Re:tornare all'activity precedente - crash
« Risposta #8 il: 05 Febbraio 2014, 15:03:45 CET »
0
grazie mille, adesso sono riuscito anche a mettere il thanks...boh!