使用 Intent 从一个 Activity 发送列表对象到另一个使用 Parcelable | Android

Send List Objects using Intent from one Activity to another using Parcelable | Android

我有 Arraylist private ArrayList<Movies> mMovies; 类型的 Movies 实现为 MainActivity 中定义的 Parcelable

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

MainActivity内在onCreateView()方法内 我试图将可打包对象传递给另一个名为 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

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

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

首先,您放入 extras 列表,但要获取移动对象,请使用 getParcelableArrayList()

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