Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:对象的打包列表_Android_Parcelable - Fatal编程技术网

Android:对象的打包列表

Android:对象的打包列表,android,parcelable,Android,Parcelable,我正在为android应用程序编写一个代码,如果单击列表中的一个元素,它会打开一个新的列表,其中包含它所特有的对象,如下所示 public class A{ public int id; public String name; } public class B{ public String name; public List<A> a; } 公共A类{ 公共int id; 公共字符串名称; } 公共B类{ 公共字符串名称;

我正在为android应用程序编写一个代码,如果单击列表中的一个元素,它会打开一个新的列表,其中包含它所特有的对象,如下所示

public class A{    
public int id;   
public String name;   
}   

public class B{       
public String name;   
public List<A> a;   
}
公共A类{
公共int id;
公共字符串名称;
}   
公共B类{
公共字符串名称;
公开名单a;
}
如何将B类从一个ListActivity打包到另一个ListActivity

这是我的B包裹代码:-

public A(Parcel in){

    name = in.readString();     
    in.readList(a, this.getClass().getClassLoader());
}

@Override
public int describeContents() {
    return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {

    dest.writeString(name);
    dest.writeList(a);

}

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

    @Override
    public B[] newArray(int size) {

        return new B[size];
    }

    @Override
    public B createFromParcel(Parcel source) {
        return new B(source);
    }
};
public A(包裹中){
name=in.readString();
in.readList(a,this.getClass().getClassLoader());
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地书面记录(名称);
目的地书面记录(a);
}
公共静态最终包裹。创建者=新创建者(){
@凌驾
公共B[]新数组(整数大小){
返回新的B[尺寸];
}
@凌驾
公共B createFromParcel(地块源){
返回新的B(源);
}
};
我的包裹代码是:-

public A(){};

public A(Parcel in){

    id = in.readLong();
    name = in.readString(); 

}

@Override
public int describeContents() {
    return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {

    dest.writeLong(id);
    dest.writeString(name);



}

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

    @Override
    public A[] newArray(int size) {

        return new A[size];
    }

    @Override
    public A createFromParcel(Parcel source) {

        return new A(source);
    }
};
public A(){};
公共A(包裹内){
id=in.readLong();
name=in.readString();
}
@凌驾
公共int描述内容(){
返回0;
}
@凌驾
公共无效写入包裹(包裹目的地,内部标志){
目的地写长(id);
目的地书面记录(名称);
}
公共静态最终包裹。创建者=新创建者(){
@凌驾
公共A[]新数组(整数大小){
返回新的[尺寸];
}
@凌驾
公共A createFromParcel(地块源){
返回新的A(源);
}
};
这些选项不起作用,导致我的应用程序在尝试打开新列表活动时崩溃

新列表活动代码:-

    private B b; 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.MainList);
    Bundle bun = getIntent().getExtras();
    b = bun.getParcelable(".modle.B");


    ArrayAdapter<A> adapter =new ArrayAdapter<A>     (this,android.R.layout.simple_list_item_1,b.a);
    setListAdapter(adapter);
}
privateb;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.MainList);
Bundle bun=getIntent().getExtras();
b=可包裹的包裹(“.modle.b”);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,b.a);
setListAdapter(适配器);
}

问题太长。我没读过。alos格式不好,没有stacktrace等。您需要显示stacktrace先生。