【问题标题】:Send List Objects using Intent from one Activity to another using Parcelable | Android使用 Intent 将列表对象从一个 Activity 发送到另一个使用 Parcelable |安卓
【发布时间】:2015-10-01 21:58:10
【问题描述】:

我有 Arraylist private ArrayList<Movies> mMovies; 类型的 Movies,它在 MainActivity 中定义为 Parcelable

mMovies 包含 20 部左右的电影列表。

MainActivityonCreateView() 方法内 我试图将 parcelable 对象传递给另一个名为 DetailActivity 的 Activity

Intent intent = new Intent(getActivity(), DetailActivity.class);
                        intent.putExtra("MOVIES", movieList);
                        startActivity(intent);

使用调试器我可以看到movieList 包含 20 行。

这就是我尝试读取通过 MainActivity 的意图传递的可打包对象的方式。

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle bundle = getActivity().getIntent().getExtras();
        mMovies = getActivity().getIntent().getParcelableExtra("MOVIES");
    }

当我尝试使用调试器查看mMovies 值时,它显示null

【问题讨论】:

标签: java android android-intent parcelable


【解决方案1】:

请改用putParcelable("MOVIES",mMovies);getParcelableArrayListExtra("MOVIES")How can I make my custom objects Parcelable? 可能会提供更多见解。

【讨论】:

    【解决方案2】:

    首先,您将添加到附加列表,但尝试获取电影对象,请使用 getParcelableArrayList()

    其次,检查 Parcelable 的实现(并确保在 CREATOR 中调用正确的构造函数)

    【讨论】:

      【解决方案3】:

      我的建议是将 Movies 类导出为 Json 字符串,如下所示:Android- create JSON Array and JSON Object 然后,将它作为字符串从一个 Intent 传递到第二个

      【讨论】:

      • 您如何建议 OP 将Movies 类序列化为 JSON?
      • 我的建议是将 Movies 类导出为 Json String 为:stackoverflow.com/questions/17810044/… 然后,将其作为 String 从一个 Intent 传递到第二个
      猜你喜欢
      • 1970-01-01
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多