Android:对象的打包列表
我正在为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类{ 公共字符串名称;
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先生。