【发布时间】:2015-03-09 14:09:36
【问题描述】:
如何通过Parcelable,一个List类型的对象在fragment中通过Bundle的Activity? 不断产生错误类型NPE,在OnCreateView中编写Parcelable。
// Fragment object в Activity
public Fragment systemFragList(){
a = new AppsManagerFragment();
b = new Bundle();
dApps = new DataApps(this);
//transmission through List the designer
listCreater = new MakingListObject(dApps.getSystemAppsList());
b.putParcelable("List", listCreater); // transfer Parcelable object through Bundle
a.setArguments(b);
return a;
};
// Parcelable class
public class MakingListObject implements Parcelable {
private List<ApplicationInfo> list;
// get an object List <ApplicationInfo> constructor
public MakingListObject(List<ApplicationInfo> l) {
this.list = l;
}
public MakingListObject(Parcel in) {
in.readTypedList(list, ApplicationInfo.CREATOR); // read
}
public List<ApplicationInfo> getList(){ // vethod return list
return list;
}
@Override
public void writeToParcel(Parcel dest, int flags) { // write
dest.writeTypedList(list);
}
@Override
public int describeContents() {
return 0;
}
CREATOR...
}
//Admission List to the Fragment in onCreateView()
MakingListObject obj = (MakingListObject)this.getArguments().getParcelable("List"); // NPE ERROR
List<ApplicationInfo> listData = obj.getList();
【问题讨论】:
-
请尝试更清楚地表达您的问题,很难理解您需要什么。
-
Emil,在 OnCreteView 中获取 Parcelable 时出现 NPE 错误。
标签: android list fragment parcelable