【问题标题】:Not able to pass parcelable object ArrayList to a fragment activity无法将 Parcelable 对象 ArrayList 传递给片段活动
【发布时间】:2014-03-07 21:39:44
【问题描述】:

我有一个 Activity A,它有一个对象的 ArrayList,我可以分析它。 对象是:

    public class DashBoardPOJO implements Parcelable {

private String dashBoardName;
private String dashBoardId;
private String dashBoardStatus;
private ArrayList<DashBoardDataPOJO> dashBoardDataList;
private boolean loaded;

public ArrayList<DashBoardDataPOJO> getDashBoardDataList() {
    return dashBoardDataList;
}

public void setDashBoardDataList(
        ArrayList<DashBoardDataPOJO> dashBoardDataList) {
    this.dashBoardDataList = dashBoardDataList;
}

public boolean isLoaded() {
    return loaded;
}

public void setLoaded(boolean loaded) {
    this.loaded = loaded;
}

public String getDashBoardStatus() {
    return dashBoardStatus;
}

public void setDashBoardStatus(String dashBoardStatus) {
    this.dashBoardStatus = dashBoardStatus;
}

@Override
public int describeContents() {
    // TODO Auto-generated method stub
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {

    dest.writeString(dashBoardName);
    dest.writeString(dashBoardId);
    dest.writeList(dashBoardDataList);

}

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

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

public DashBoardPOJO() {

    dashBoardName = null;
    dashBoardId = null;
    dashBoardDataList = null;
    /*
     * userName=null; userId=null;
     */

}

private DashBoardPOJO(Parcel in) {

    dashBoardName = in.readString();
    dashBoardId = in.readString();
    in.readList(dashBoardDataList, null);

}

// GETTERS AND SETTERS............

public String getDashBoardName() {
    return dashBoardName;
}

public void setDashBoardName(String dashBoardName) {
    this.dashBoardName = dashBoardName;
}



public String getDashBoardId() {
    return dashBoardId;
}

public void setDashBoardId(String dashBoardId) {
    this.dashBoardId = dashBoardId;
}

}

我想将 ArrayList 传递给扩展 Fragment Activity 的 Activity。

我正在发送这样的对象

                                                       Intent intent = new Intent(
                                                            DashboardActivity.this,
                                     BaseFragmentActivity.class);

                                                     intent.putParcelableArrayListExtra("dashBoardList", dashBoardList);
                                                    startActivity(intent);

并像这样在片段活动中接收它

        dashboardList = getIntent().getExtras().getParcelableArrayList("dashBoardList");

但意图仍然是返回一个空值...请帮助...

【问题讨论】:

    标签: android fragment parcelable


    【解决方案1】:

    试试这个:

    private DashBoardPOJO(Parcel in) {
        dashBoardName = in.readString();
        dashBoardId = in.readString();
        dashBoardDataList = (ArrayList<DashBoardDataPOJO>) in.readArrayList(DashBoardDataPOJO.class.getClassLoader());
    }
    

    【讨论】:

    • 出现错误...无法将 void 转换为 arraylist
    • @user1901079 对不起,我的错误。我编辑了答案,请立即尝试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多