2014-01-16 11 views
5

私はMyClassにParcelableを実装しています。そして2つの断片がある。フラグメント化されたアクティビティのArraylist

ArrayList<MyClass> data = new ArrayList<MyClass>(); 
............ 
Bundle extras1 = new Bundle(); 
extras1.putParcelableArrayList("arraylist", data); 
Tab1Fragment fg = new Tab1Fragment(); 
fg.setArguments(extras1); 

とフラグメント(onCreateView)中:MainActivity(のonCreate)で私は、コードを持っている?

Bundle extras = getArguments(); 
ListView list = (ListView) content.findViewById(R.id.lvMain); 
if (extras != null) { 
    data = extras.getParcelableArrayList("arraylist"); 
    list.setAdapter(new MyAdapter(getActivity(), data)); 
} 

しかしエキストラなかれnull.why :)

+0

ます。また、新しいTabFragmentHere.newInstanceを使用することができます(ここでは、配列のリストを渡す)です。 –

+0

静的変数を使用... –

答えて

3

ご提供されたコードは、罰金です。問題はMyClassをどのように実装しているかによると思われます。 Parcelableの典型的な実装では、(グーグルから撮影)このような何か

public class MyParcelable implements Parcelable { 
private int mData; 

public int describeContents() { 
    return 0; 
} 

public void writeToParcel(Parcel out, int flags) { 
    out.writeInt(mData); 
} 

public static final Parcelable.Creator<MyParcelable> CREATOR 
     = new Parcelable.Creator<MyParcelable>() { 
    public MyParcelable createFromParcel(Parcel in) { 
     return new MyParcelable(in); 
    } 

    public MyParcelable[] newArray(int size) { 
     return new MyParcelable[size]; 
    } 
}; 

private MyParcelable(Parcel in) { 
    mData = in.readInt(); 
} 
+0

タイ!私はListFragmentを使用しています:) – NickDevil

+0

あなたはそれを修正しましたか? MyClassコードを表示できますか? – Lowkey

+0

私は静的を使用:) – NickDevil

関連する問題