Autore Topic: errore strano durante passaggio di dati  (Letto 823 volte)

Offline Jason88

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
errore strano durante passaggio di dati
« il: 22 Gennaio 2012, 18:42:25 CET »
0
Ho utilizzato la guida http://www.anddev.it/index.php/topic,104.0.html per il passaggio di dati ma mi da errore ecco il codice:

Codice (Java): [Seleziona]
Button bottoneavanti = (Button) findViewById(R.id.avanti2);
               bottoneavanti.setOnClickListener(new OnClickListener()
                                {
                                                       
                                    @Override
                                                                public void onClick(View v) {
                                         
                                        Punto pos=new Punto();
                                        pos.setLatitudine_punto((latitudine.getText()).toString());
                                        pos.setLongitudine_punto((longitudine.getText()).toString());
                                        pos.setQuota_punto((quota.getText()).toString());
                                        pos.setAccuratezza_punto((accuratezza.getText()).toString());
                                        Intent prova = new Intent(Punto.this, POI.class);
                                        String pkg=getPackageName();
                                        prova.putExtra(pkg+".myPunto", pos);  
                                        startActivity(prova);
                                     
                                       
                                }

                                });


mentre dove deve arrivare

Codice (Java): [Seleziona]
Intent prova=getIntent(); // l'intent di questa activity
                String pkg=getPackageName();
        Punto posizioneRilevata=(Punto)prova.getSerializableExtra(pkg+".myPunto");
       

il logcat è

Codice: [Seleziona]
01-22 18:38:28.429: D/dalvikvm(13839): GC_CONCURRENT freed 978K, 54% free 3188K/6855K, external 2031K/2108K, paused 3ms+6ms
01-22 18:38:28.457: D/AndroidRuntime(13839): Shutting down VM
01-22 18:38:28.457: W/dalvikvm(13839): threadid=1: thread exiting with uncaught exception (group=0x40015578)
01-22 18:38:28.464: E/AndroidRuntime(13839): FATAL EXCEPTION: main
01-22 18:38:28.464: E/AndroidRuntime(13839): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = io.francesco.tesi.Punto)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Parcel.writeSerializable(Parcel.java:1176)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Parcel.writeValue(Parcel.java:1130)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Parcel.writeMapInternal(Parcel.java:488)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Bundle.writeToParcel(Bundle.java:1552)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Parcel.writeBundle(Parcel.java:502)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.content.Intent.writeToParcel(Intent.java:5635)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:1341)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.app.Instrumentation.execStartActivity(Instrumentation.java:1374)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.app.Activity.startActivityForResult(Activity.java:2827)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.app.Activity.startActivity(Activity.java:2933)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at io.francesco.tesi.Punto$3.onClick(Punto.java:125)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.view.View.performClick(View.java:2538)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.view.View$PerformClick.run(View.java:9152)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Handler.handleCallback(Handler.java:587)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Handler.dispatchMessage(Handler.java:92)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Looper.loop(Looper.java:123)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.app.ActivityThread.main(ActivityThread.java:3687)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.lang.reflect.Method.invokeNative(Native Method)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.lang.reflect.Method.invoke(Method.java:507)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at dalvik.system.NativeStart.main(Native Method)
01-22 18:38:28.464: E/AndroidRuntime(13839): Caused by: java.io.NotSerializableException: io.francesco.tesi.Punto$1
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1535)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
01-22 18:38:28.464: E/AndroidRuntime(13839):         at android.os.Parcel.writeSerializable(Parcel.java:1171)
01-22 18:38:28.464: E/AndroidRuntime(13839):         ... 21 more


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:errore strano durante passaggio di dati
« Risposta #1 il: 22 Gennaio 2012, 19:25:17 CET »
0
Se vuoi passare l'oggetto come Serializable la classe Punto deve implementare l'interfaccia Serializable.

Offline Jason88

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
Re:errore strano durante passaggio di dati
« Risposta #2 il: 22 Gennaio 2012, 20:54:13 CET »
0
si si l'ho fatto!  :-)

Codice (Java): [Seleziona]
public class Punto extends MapActivity implements Serializable

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Re:errore strano durante passaggio di dati
« Risposta #3 il: 23 Gennaio 2012, 01:03:25 CET »
+1
si si l'ho fatto!  :-)

Codice (Java): [Seleziona]
public class Punto extends MapActivity implements Serializable

Non credo che passare una mapactivity in un intent sia una buona idea.

Inviato dal mio HTC Desire usando Tapatalk

Offline Jason88

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
Re:errore strano durante passaggio di dati
« Risposta #4 il: 23 Gennaio 2012, 10:38:07 CET »
0
a quindi è quello...a me interessa passare solo le coordinate...cioè ora gli passo la string lat e long...ma quindi se voglio creare un oggetto punto non potrò mai passarlo??? anche se nel costruttore non c'è nessuna mappa?? xkè lo uso solo per far vedere il punto su una mappa ma la mappa non serve al punto!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:errore strano durante passaggio di dati
« Risposta #5 il: 23 Gennaio 2012, 11:14:38 CET »
0
Crei una classe punto che non estende nessun'altra classe e passi quella. No?

Offline Jason88

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
Re:errore strano durante passaggio di dati
« Risposta #6 il: 23 Gennaio 2012, 11:38:04 CET »
0
si ci ho pensato anche io...era solo per far vedere la mappa con la posizione rilevata(è bello cosi! :-)) però posso fare come dici tu e mettere nell'ultima schermata un riepilogo con una mappa! :-)

Offline Jason88

  • Utente junior
  • **
  • Post: 73
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
Re:errore strano durante passaggio di dati
« Risposta #7 il: 23 Gennaio 2012, 17:26:48 CET »
0
Ma adesso mi viene un dubbio...cosi non potrei nemmeno passare un oggetto Foto che ha tra gli attributi un vector di bitmap...giusto?