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

第一活动

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


第二活动

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


问题是什么?

最佳答案

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

因此,尝试使用putExtra方法代替putParcelableArrayListExtra

您需要在另一侧使用get getParcelableArrayListExtra

请注意,这仅适用于ArrayList,并且Question类将需要实现Parcelable

关于android - 尝试将List对象发送到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40577041/

10-12 06:00