我正在尝试向其他活动发送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);
有什么问题?
答案 0 :(得分:2)
它不起作用的原因是ArrayList
本身没有实现Parcelable
接口。但是,某些Android类(如Intent
和Bundle
)已设置为处理ArrayList
,前提是它们包含的实例属于实现Parcelable
的类。
因此,请尝试使用putParcelableArrayListExtra
方法,而不是putExtra
。
您需要在另一方使用get getParcelableArrayListExtra
。
请注意,这仅适用于ArrayList
,而Question
类需要实施Parcelable
。