以下に示すように、リストの要素をクリックすると、それに固有のオブジェクトの新しいリストが開きます。
public class A{
public int id;
public String name;
}
public class B{
public String name;
public List<A> 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);
}
};
そしてAの私の小包コード:-
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);
}
};
これらは機能せず、新しいリスト アクティビティを開こうとするとアプリがクラッシュします。
新しい ListActivity コード:-
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);
}