尝试将List对象发送到另一个活动

时间:2016-11-13 18:03:09

标签: android

我正在尝试向其他活动发送List<Question>,但我收到错误&#34; java.util.ArrayList无法转换为android.os.Parcelable&#34;。

FirstActivity

    List<Question> list;
    list = response.body().items;
    Intent myIntent = new Intent(SearchActivity.this, RestaurantActivity.class);
    myIntent.putExtra("restaurants", (Parcelable) list); 
    SearchActivity.this.startActivity(myIntent);

SecondActivity

    Intent intent = getIntent();
    List<Question> restaurants = intent.getExtras().getParcelable("restaurants");
    textView = (TextView)findViewById(R.id.textView);
    textView.setText(restaurants.get(0).title);

有什么问题?

1 个答案:

答案 0 :(得分:2)

它不起作用的原因是ArrayList本身没有实现Parcelable接口。但是,某些Android类(如IntentBundle)已设置为处理ArrayList,前提是它们包含的实例属于实现Parcelable的类。

因此,请尝试使用putParcelableArrayListExtra方法,而不是putExtra

您需要在另一方使用get getParcelableArrayListExtra

请注意,这仅适用于ArrayList,而Question类需要实施Parcelable