0

以下に示すように、リストの要素をクリックすると、それに固有のオブジェクトの新しいリストが開きます。

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);
}
4

0 に答える 0