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

时间:2015-07-13 14:55:22

标签: java android android-intent parcelable

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

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

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

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

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

这就是我试图读取通过MainActivity中的意图传递的parcelable对象。

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

虽然我尝试使用调试器查看mMovies值,但它会显示null

enter image description here

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

首先,你添加额外列表,但尝试获取电影注入,使用getParcelableArrayList()

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

答案 2 :(得分:-1)

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