Autore Topic: Problema con Bundle  (Letto 1191 volte)

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Problema con Bundle
« il: 28 Maggio 2011, 20:14:02 CEST »
0
Ragazzi ho un problemino....
in una pagina ho un

Codice (Java): [Seleziona]
Bundle bundle = getIntent().getExtras();
                final String Codice = (String) bundle.getString("Codice");

Prelevo quindi questa stringa dall'activity precedente (dopo aver cliccato su un Button)
Poichè in questa nuova activity ho dei dati da aggiornare....quando clicco sul pulsante REFRESH (appositamente creato)
l'applicazione crasha. Credo proprio per via del Bundle bundle = getIntent().getExtras(); perchè non trova più i dati.

Qualche idea ?
Spero di essere stato chiaro

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Problema con Bundle
« Risposta #1 il: 28 Maggio 2011, 20:35:46 CEST »
0
Dovresti postare qualche riga di più di codice... Nella fattispecie servirebbe sapere dove/come hai creato l'intent per lanciare la seconda activity dalla prima...
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #2 il: 28 Maggio 2011, 20:58:05 CEST »
0
Nell'activity precedente c'è questo:

Codice (Java): [Seleziona]
public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                               
                                String Codice = cursor.getString(cursor.getColumnIndex(Tabella.CODICE));

                                Intent i = new Intent(1Activity.this, 2Activity.class);
                                i.putExtra("Codice", Codice);
                                startActivity(i);

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Problema con Bundle
« Risposta #3 il: 28 Maggio 2011, 23:36:08 CEST »
0
Altra cosa importante, hai dimenticato il LOGCAT :)
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #4 il: 29 Maggio 2011, 23:39:21 CEST »
0
Sto avendo problemi con il LOGCAT....

comunque la spiegazione è semplice: mandando una Stringa da un'activity ad un altra....quando aggiorno la seconda activity ovviamente non ho più la Stringa perchè la prima acitivity non è stata interpellata

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Problema con Bundle
« Risposta #5 il: 30 Maggio 2011, 01:57:28 CEST »
0
Sto avendo problemi con il LOGCAT....
[...]

Mi spiace, ma senza log IO non riesco a capire precisamente il problema... :(
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #7 il: 02 Giugno 2011, 03:04:40 CEST »
0
Codice (Java): [Seleziona]
06-02 03:00:21.274: ERROR/AndroidRuntime(12942): FATAL EXCEPTION: main
06-02 03:00:21.274: ERROR/AndroidRuntime(12942): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.pinabello.android.tutorial/it.pinabello.android.tutorial.Orario}: java.lang.NullPointerException
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2685)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread.access$2300(ActivityThread.java:126)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.os.Looper.loop(Looper.java:123)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread.main(ActivityThread.java:4633)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at java.lang.reflect.Method.invokeNative(Native Method)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at java.lang.reflect.Method.invoke(Method.java:521)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at dalvik.system.NativeStart.main(Native Method)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942): Caused by: java.lang.NullPointerException
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at it.pinabello.android.tutorial.Orario.onCreate(Orario.java:40)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)
06-02 03:00:21.274: ERROR/AndroidRuntime(12942):     ... 11 more

Il problema sta nella riga 40 della classe Orario
ed è questa:
Codice (Java): [Seleziona]
                final String Codice = (String) bundle.getString("Codice");
che è esattamente quello che vi avevo gia detto.....il problema sta nel Bundle....io dall'activity precedente passo questo codice e ovviamente aggiornando poi l'activity2 non ho più questa stringa....non so se rendo l'idea

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema con Bundle
« Risposta #8 il: 02 Giugno 2011, 03:06:51 CEST »
0
Hai mai preso in considerazione di mettere un semplice controllo?

Codice (Java): [Seleziona]
String Codice;
if(bundle != null)
Codice = (String) bundle.getString("Codice");
else
Codice = "CodiceDiDefault";

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #9 il: 02 Giugno 2011, 13:25:40 CEST »
0
Si hai ragione, ci avevo gia pensato...ma quale sarebbe il "CodiceDiDefault" se la Stringa mi viene passata dall'Activity precedente ?

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con Bundle
« Risposta #10 il: 02 Giugno 2011, 16:20:14 CEST »
0
Sarebbe proprio "CodiceDiDefault" creata al momento. :)
Comunque, anche secondo me c'è un problema con il cursor. Siccome non hai errori oltre al nullPointerException, il contenuto del campo Tabella.codice è proprio vuoto. Sempre secondo me, per controllo, dovresti stampare nel logcat (System.out.println(String stringa)) la stringa sia quando la inserisci nel database, sia prima di inserirla nell'intent, in modo da vedere se è il campo del database ad essere vuoto o se c'è qualche altro errore.
 Un'altra cosa: nell'onItemClick hai messo il cursor.moveToPosition(int position)?
« Ultima modifica: 02 Giugno 2011, 16:31:16 CEST da Verandi »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Problema con Bundle
« Risposta #11 il: 02 Giugno 2011, 16:30:13 CEST »
0
Potresti per favore dirci dove hai messo questo codice? E cosa intendi con "aggiornamento" dell'activity?
Quel codice dovrebbe stare nel'onCreate e quando vai aggiornare l'activity ovviamente non dovrebbe essere distrutta e ricreata.

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #12 il: 02 Giugno 2011, 18:51:20 CEST »
0
Allora, io ho :
Activity1.java
Activity2.java

Nell'activity1 ho un editText e li inserisco un CODICE....tramite bundle poi passo questa stringa all'Activity2

Nell'activity2 ho un Button ("REFRESH PAGINA"), e quando lo clicco per aggiornare la pagina crasha l'applicazione perchè l'activity2 non riesce piu a prelevare il valore CODICE.

Capito adesso ?

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Problema con Bundle
« Risposta #13 il: 02 Giugno 2011, 19:04:33 CEST »
0
Credo di aver capito male all'inizio. Credevo la stringa codice fosse nulla anche la prima volta in cui avvii l'activity2, invece no, giusto? Solo quando fai refresh?
In questo caso quoto Ricky.
Con "dove hai messo quel codice" credo intendesse se nel metodo onCreate() o nel metodo onResume() dell'activity2.  A che punto l'hai messo?
In che modo fai il refresh?

Offline Carlos

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Zopo ZP1000
  • Play Store ID:
    Giovanni Miceli
  • Sistema operativo:
    Windows 8
Re:Problema con Bundle
« Risposta #14 il: 02 Giugno 2011, 19:06:54 CEST »
0
Entrambi nell'onCreate