Kann jemand einen ArrayList<NameValuePair>
zu einem Intent als Extra hinzufügen?Absicht putExtra ArrayList <NameValuePair>
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("first_name", first_name));
nameValuePairs.add(new BasicNameValuePair("last_name", last_name));
nameValuePairs.add(new BasicNameValuePair("email", email));
nameValuePairs.add(new BasicNameValuePair("password", password));
/* Move on to step 2 */
Intent intent = new Intent(RegisterActivity1.this, RegisterActivity2.class);
intent.putExtra("nvp", nameValuePairs);
startActivity(intent);
Hier ist die Klassendeklaration für RegisterActivity2:
public class RegisterActivity2 extends Activity implements Serializable {
}
Der Fehler in der logcat ist:
> Parcel: unable to marshal value first_name="whatever"
den Vorschlag von Ted Hopp, bekomme ich noch einen Fehler Nach der Implementierung. Hier ist der Stack-Trace:
08-04 22:10:16.095: E/AndroidRuntime(5065): FATAL EXCEPTION: main
> 08-04 22:10:16.095: E/AndroidRuntime(5065):
> java.lang.RuntimeException: Unable to start activity
> ComponentInfo{/.RegisterActivity2}: java.lang.RuntimeException:
> Parcelable encountered IOException reading a Serializable object (name
> = database.NVP) 08-04 22:10:16.095: E/AndroidRuntime(5065): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2070)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2095)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.ActivityThread.access$600(ActivityThread.java:135) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Handler.dispatchMessage(Handler.java:99) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Looper.loop(Looper.java:137) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> android.app.ActivityThread.main(ActivityThread.java:4849) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> java.lang.reflect.Method.invokeNative(Native Method) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> java.lang.reflect.Method.invoke(Method.java:511) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> dalvik.system.NativeStart.main(Native Method) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): Caused by: java.lang.RuntimeException:
> Parcelable encountered IOException reading a Serializable object (name
> = database.NVP) 08-04 22:10:16.095: E/AndroidRuntime(5065): at android.os.Parcel.readSerializable(Parcel.java:2144) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Parcel.readValue(Parcel.java:2016) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> android.os.Parcel.readListInternal(Parcel.java:2235) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Parcel.readArrayList(Parcel.java:1655) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> android.os.Parcel.readValue(Parcel.java:1986) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> android.os.Parcel.readMapInternal(Parcel.java:2226) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Bundle.unparcel(Bundle.java:223) 08-04 22:10:16.095:
> E/AndroidRuntime(5065): at
> android.os.Bundle.getSerializable(Bundle.java:1254) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.content.Intent.getSerializableExtra(Intent.java:4268) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> .RegisterActivity2.onCreate(RegisterActivity2.java:24) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.Activity.performCreate(Activity.java:5244) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2034)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): ... 11 more 08-04
> 22:10:16.095: E/AndroidRuntime(5065): Caused by:
> java.io.InvalidClassException:
> org.apache.http.message.BasicNameValuePair; IllegalAccessException
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectStreamClass.resolveConstructorClass(ObjectStreamClass.java:694)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectStreamClass.newInstance(ObjectStreamClass.java:655)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1816)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:787)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:2003)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:1960)
> 08-04 22:10:16.095: E/AndroidRuntime(5065): at
> android.os.Parcel.readSerializable(Parcel.java:2142) 08-04
> 22:10:16.095: E/AndroidRuntime(5065): ... 23 more
Perfekt. Vielen Dank! – Alex
@ usr55410 - Es war nicht ganz perfekt. Ich schlug vor, 'NameValuePair' zu bilden, was nicht funktionierte. Jetzt behoben. Ich nehme an, dass Sie diesen Teil selbst herausgefunden haben, da Sie dies bereits als Lösung akzeptiert haben. :) –
Ja, habe ich. Es gibt jedoch noch ein Problem. Wenn ich das teste, erhalte ich eine Fehlermeldung "Parcelable hat IOException beim Lesen eines serialisierbaren Objekts gefunden". Meine NVP-Klasse implementiert Serializable. Irgendwelche Ideen? – Alex