2016-11-13 71 views
0

我想发送一个List<Question>到其他活动,但我收到错误“java.util.ArrayList不能转换为android.os.Parcelable”。试图发送列表对象到另一个活动

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); 

问题是什么?

回答

2

不起作用的原因是ArrayList本身没有实现Parcelable接口。然而,一些Android类如IntentBundle已经设置为处理ArrayLists,只要它们包含的实例属于实现Parcelable的类。

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

您需要在另一面使用get getParcelableArrayListExtra

请注意,这只适用于ArrayList s,而Question类将需要执行Parcelable

+0

我不能,我收到此错误: 错误的第二个参数类型。发现:'java.util.List ',required:'java.util.ArrayList <?扩展android.os.Parcelable> – lolix

+0

右键 - 确保你传递了一个'ArrayList',而不是'List',并且'Question'实现了'Parcelable'接口。 – clownba0t

相关问题