android parcel空指针,检索自定义包裹时的空指针异常

所以我一直在寻找通过StackOverFlow,似乎无法找到完全解决我的问题的主题。许多人在尝试使用自定义的可分类时遇到了空指针异常的问题。我已经看到解决方案的问题就像在parcelable类中为CREATOR添加Static一样简单。但是,我没有找到任何有助于我的事业或对我的情况有所启​​发的事情。检索自定义包裹时的空指针异常

从一个名为MyPointsList的自定义类访问坐标的ArrayList时,我得到一个空指针异常。在传递MyPointsList之前,我能够访问MyPointsList中的ArrayList。在检索实例时,我做了一个快速检查以确保实例不是空的,它不是,然后继续访问ArrayList,在那里我得到空指针异常。

为什么在访问MyPointsList内的ArrayList时在接收类中收到空指针异常?

下面是以下类的代码:

MyPoint.java

public class MyPoint implements Parcelable {

private int x;

private int y;

public MyPoint(){

this.x = 0;

this.y = 0;

}

public MyPoint(Parcel in){

this.x = 0;

this.y = 0;

readFromParcel(in);

}

public void setPoint(int px, int py){

this.x = px;

this.y = py;

}

public int getX(){return this.x;}

public int getY(){return this.y;}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator (){

public MyPoint createFromParcel(Parcel source) {

// TODO Auto-generated method stub

return new MyPoint(source);

}

public MyPoint[] newArray(int size) {

// TODO Auto-generated method stub

return new MyPoint[size];

}

};

public int describeContents() {

// TODO Auto-generated method stub

return 0;

}

public void writeToParcel(Parcel dest, int flags) {

dest.writeInt(x);

dest.writeInt(y);

}

public void readFromParcel(Parcel in){

int count = in.dataAvail();

for(int i = 0; i < count; i++){

x = in.readInt();

i++;

y = in.readInt();

}

}

}

MyPointsList.java

public class MyPointsList implements Parcelable {

private ArrayList arrList = new ArrayList();

private int myInt = 0;

private String myString = null;

public String getString(){return myString;}

public void setString(String str){this.myString = str;}

public MyPoint getMyPoint(int index){return this.arrList.get(index);}

public ArrayList getArrayList(){return arrList;}

public void setArrayList(ArrayList arr){this.arrList = arr;}

public int getMyInt(){return myInt;}

public void setMyInt(int newInt){this.myInt = newInt;}

MyPointsList(){this.arrList = new ArrayList();}

public MyPointsList(Parcel in){

myInt = in.readInt();

myString = in.readString();

arrList = new ArrayList();

in.readTypedList(arrList, MyPoint.CREATOR);

}

public int describeContents() {

// TODO Auto-generated method stub

return 0;

}

public void writeToParcel(Parcel out, int flags) {

// TODO Auto-generated method stub

out.writeInt(myInt);

out.writeString(myString);

out.writeTypedList(arrList);

}

public static final Parcelable.Creator CREATOR = new Parcelable.Creator(){

public MyPointsList createFromParcel(Parcel source) {

// TODO Auto-generated method stub

return new MyPointsList(source);

}

public MyPointsList[] newArray(int size) {

// TODO Auto-generated method stub

return new MyPointsList[size];

}

};

}

包装领域:点被MyPoints

public void onClick(View v){

MyPointsList object = new MyPointsList();

object.setMyInt(100);

object.setArrayList(points);

Log.d("DEBUG", object.getMyPoint(5).getX() + " " + object.getMyPoint(5).getY() + " ");

Intent goBack = new Intent(SignHereActivity.this, Menu.class);

goBack.putExtra("parcel" , object);

SignHereActivity.this.startActivity(goBack);

}

});的ArrayList

Retreiving段

public void getIntentData(){

Intent i = this.getIntent();

if(i.hasExtra("parcel")){

Bundle b = getIntent().getExtras();

object = b.getParcelable("parcel");

Log.d("Debug", object.getArrayList().get(5).getX() + " " + object.getArrayList().get(5).getY());

}

}

如前所述,我经历过的任何信息,我可以找到我的相关问题进行浏览。我非常感谢任何意见和答复。我为我的代码中任何烦人的语法或令人困惑的段落道歉。作为一个整体,我还是对Java和Android的新手。

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值