Java 从GetParcelableArrayListXTRA读取自定义对象的ArrayList返回NullPointerException
我试图将我的车辆数组列表从主活动传递到MapView类,但当我试图读回ArrayList时,它总是给我NullPointerException 车辆代码Java 从GetParcelableArrayListXTRA读取自定义对象的ArrayList返回NullPointerException,java,android,android-intent,nullpointerexception,parcelable,Java,Android,Android Intent,Nullpointerexception,Parcelable,我试图将我的车辆数组列表从主活动传递到MapView类,但当我试图读回ArrayList时,它总是给我NullPointerException 车辆代码 public class Vehicle implements Parcelable { private String name = ""; private String GPSDateTime = ""; private long latitude = 0; private long longtitude =
public class Vehicle implements Parcelable
{
private String name = "";
private String GPSDateTime = "";
private long latitude = 0;
private long longtitude = 0;
private String event = "";
public Vehicle (String vName, String vGpsDateTime, long vLatitude,
long vLongtitude, String vEvent)
{
this.name = vName;
this.GPSDateTime = vGpsDateTime;
this.latitude = vLatitude;
this.longtitude = vLongtitude;
this.event = vEvent;
}
protected Vehicle(Parcel in) {
this.name = in.readString();
this.GPSDateTime = in.readString();
this.latitude = in.readLong();
this.longtitude = in.readLong();
this.event = in.readString();
}
public String getName()
{
return name;
}
public void setName(String vName)
{
name = vName;
}
public String getGpsDateTime()
{
return GPSDateTime;
}
public void setGpsDateTime(String vGpsDateTime)
{
GPSDateTime = vGpsDateTime;
}
public long getLatitude()
{
return latitude;
}
public void setLatitude(Long vLatitude)
{
latitude = vLatitude;
}
public long getLongtitude()
{
return longtitude;
}
public void setLongtitude(Long vLongtitude)
{
longtitude = vLongtitude;
}
public String getEvent()
{
return event;
}
public void setEvent(String vEvent)
{
event = vEvent;
}
@Override
public String toString() {
return name;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeString(GPSDateTime);
dest.writeLong(latitude);
dest.writeLong(longtitude);
dest.writeString(event);
}
public static final Parcelable.Creator<Vehicle> CREATOR = new Parcelable.Creator<Vehicle>() {
@Override
public Vehicle createFromParcel(Parcel in) {
return new Vehicle(in);
}
@Override
public Vehicle[] newArray(int size) {
return new Vehicle[size];
}
};
}
过去几周我一直在拔头发。谁能帮帮我吗~~
来自LogCat的错误日志
02-11 15:23:17.032:E/AndroidRuntime(24050):
java.lang.RuntimeException:无法启动活动
ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MapView}:
java.lang.NullPointerException 02-11 15:23:17.032:
E/AndroidRuntime(24050):在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2396)
02-11 15:23:17.032:E/AndroidRuntime(24050):在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2448)
02-11 15:23:17.032:E/AndroidRuntime(24050):在
android.app.ActivityThread.access$600(ActivityThread.java:173)02-11
15:23:17.032:E/AndroidRuntime(24050):在
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1392)
02-11 15:23:17.032:E/AndroidRuntime(24050):在
android.os.Handler.dispatchMessage(Handler.java:107)02-11
15:23:17.032:E/AndroidRuntime(24050):在
android.os.Looper.loop(Looper.java:194)02-11 15:23:17.032:
E/AndroidRuntime(24050):在
android.app.ActivityThread.main(ActivityThread.java:5469)02-11
15:23:17.032:E/AndroidRuntime(24050):在
java.lang.reflect.Method.Invokenactive(本机方法)02-11
15:23:17.032:E/AndroidRuntime(24050):在
java.lang.reflect.Method.invoke(Method.java:525)02-11 15:23:17.032:
E/AndroidRuntime(24050):在
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:857)
02-11 15:23:17.032:E/AndroidRuntime(24050):在
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)02-11
15:23:17.032:E/AndroidRuntime(24050):在
dalvik.system.NativeStart.main(本机方法)02-11 15:23:17.032:
E/AndroidRuntime(24050):由以下原因引起:java.lang.NullPointerException
02-11 15:23:17.032:E/AndroidRuntime(24050):在
com.example.myfirstapp.MapView.onCreate(MapView.java:35)02-11
15:23:17.032:E/AndroidRuntime(24050):在
android.app.Activity.performCreate(Activity.java:5226)02-11
15:23:17.032:E/AndroidRuntime(24050):在
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1151)
02-11 15:23:17.032:E/AndroidRuntime(24050):在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2360)
你把
intent.putParcelableArrayListExtra("vlist", vehicleList);
并试图得到
vehicleList = i.getParcelableArrayListExtra("vList");
您的键不匹配,因为您输入了一个错误。为了避免将来出现这种情况,应该使用常量
public static VEHICLE_LIST_EXTRA = "vList";
在这两种情况下都可以访问 文档中说如果没有保存的实例状态会发生什么?
savedInstanceState
的值是多少?在过去的几周里,我一直在努力工作:
获取NPE
,因为vlist不等于vlist
(需要1分钟)MapView第35行是什么?(02-11 15:23:17.032:E/AndroidRuntime(24050):由:java.lang.NullPointerException引起02-11 15:23:17.032:E/AndroidRuntime(24050):在com.example.myfirstapp.MapView.onCreate(MapView.java:35)
)我的答案回答了你的问题吗?非常感谢!!我不敢相信我错过了这个细节。。。谢谢你的建议!
intent.putParcelableArrayListExtra("vlist", vehicleList);
vehicleList = i.getParcelableArrayListExtra("vList");
public static VEHICLE_LIST_EXTRA = "vList";