Alors voila mon probleme, j'essaye de passer un objet de ma classe GraphPoints :
public class GraphPoints implements Serializable {
ArrayList<Point> graphPoint=null;
public GraphPoints(InputStream fis){
try{
graphPoint=readData(fis);
}
catch(Exception e){
Log.d("read data","erreur");
}
}
D'une activité vers mon activité principale(qui l'a appelé).
J'ai donc procedé comme suit :
Dans mon activité secondaire :
Intent intent = new Intent();
intent.putExtra("carteid",carteid);
intent.putExtra("graph",graphPoint);
setResult(RESULT_OK, intent);
// retour activité principal
finish();
Dans mon activité principale :
Intent intent = new Intent(ParkAssistActivity.this, CarPositionActivity.class);
//On démarre Car Position Activity
startActivityForResult(intent, CODE_RETOUR_CAR_POSI);
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == CODE_RETOUR_CAR_POSI) {// Vérification du code de retour
if(resultCode == RESULT_OK) { // Pour eviter la touche retour
Log.d("Main","result ok");
// On récupére les paramètres de l'intent
graphPoint = (GraphPoints) data.getSerializableExtra("graph");
carteid = data.getIntExtra("carteid",R.drawable.cartepark);
Toast.makeText(getBaseContext(),R.string.save,Toast.LENGTH_SHORT).show();
}
}
}
Mais je me retrouves avec les codes d'erreurs suivants :
05-06 10:41:31.269: W/dalvikvm(915): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-06 10:41:31.280: E/AndroidRuntime(915): FATAL EXCEPTION: main
05-06 10:41:31.280: E/AndroidRuntime(915): java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = ttu.projet.parkassist.GraphPoints)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.os.Parcel.writeSerializable(Parcel.java:1176)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.os.Parcel.writeValue(Parcel.java:1130)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.os.Parcel.writeMapInternal(Parcel.java:488)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.os.Bundle.writeToParcel(Bundle.java:1552)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.os.Parcel.writeBundle(Parcel.java:502)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.content.Intent.writeToParcel(Intent.java:5474)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.app.ActivityManagerProxy.finishActivity(ActivityManagerNative.java:1459)
05-06 10:41:31.280: E/AndroidRuntime(915): at android.app.Activity.finish(Activity.java:3251)
édit :
Apres réflexion, j'ai pensé que ma classe Point (dont la classe GraphPoints contient une liste) devais elle aussi être serializable.
Apres correction je me retrouve avec ces messages d'erreurs :
05-06 11:50:50.540: I/dalvikvm(1425): threadid=1: stack overflow on call to Ljava/io/DataOutputStream;.writeByte:VI
05-06 11:50:50.540: I/dalvikvm(1425): method requires 12+20+8=40 bytes, fp is 0x418fa30c (12 left)
05-06 11:50:50.550: I/dalvikvm(1425): expanding stack end (0x418fa300 to 0x418fa000)
05-06 11:50:50.550: I/dalvikvm(1425): Shrank stack (to 0x418fa300, curFrame is 0x418fa478) 05-06 11:50:50.550: D/AndroidRuntime(1425): Shutting down VM 05-06 11:50:50.550: W/dalvikvm(1425): threadid=1: thread exiting with uncaught exception (group=0x40015560) 05-06 11:50:50.650: E/AndroidRuntime(1425): FATAL EXCEPTION: main
05-06 11:50:50.650: E/AndroidRuntime(1425): java.lang.StackOverflowError
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeNull(ObjectOutputStream.java:1640)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1734)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
05-06 11:50:50.650: E/AndroidRuntime(1425): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
Merci d'avance pour vos réponses.
[Android] Probleme d'intent
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.