Java Android-startActivityForResult将对象的ArrayList传递回
所以我有活动A和活动B,在“A”中,我需要转到“B”,然后将食物项添加到它们的数组列表中,然后将此数组列表传递回活动A,无论我在当前设置中遇到什么问题 这是从A到B的意图Java Android-startActivityForResult将对象的ArrayList传递回,java,android,arrays,Java,Android,Arrays,所以我有活动A和活动B,在“A”中,我需要转到“B”,然后将食物项添加到它们的数组列表中,然后将此数组列表传递回活动A,无论我在当前设置中遇到什么问题 这是从A到B的意图 Intent i = new Intent(OrderMain.this , OrderAdd.class); startActivityForResult(i,1); 这是从B到A的返回意图 Intent returnIntent = new Intent(); Bundle b = new Bundle(); b.put
Intent i = new Intent(OrderMain.this , OrderAdd.class);
startActivityForResult(i,1);
这是从B到A的返回意图
Intent returnIntent = new Intent();
Bundle b = new Bundle();
b.putSerializable("results", orderArray);
returnIntent.putExtras(b);
setResult(Activity.RESULT_OK, returnIntent);
finish();
最后,这是我在A中的onActivityResults
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
Bundle b = getIntent().getExtras();
ArrayList<Food> test = new ArrayList<>();
test = (ArrayList<Food>) b.getSerializable("results");
setOrderArray(test);
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}
我目前的问题是这一行代码:
test = (ArrayList<Food>) b.getSerializable("results");
test=(ArrayList)b.getSerializable(“结果”);
这是说有一个“未经检查的强制转换”,它的预期用途并没有发挥应有的作用,任何帮助都将不胜感激不要使用Serializable,而是使用Parcelable。
Parcelable是速度之王,请确保您的对象类实现Parcelable 那你有什么问题?是关于IDE的警告还是您在活动A中没有收到数据?@SonTruong没有获得任何数据,它抛出了一个ClassCastException请检查我的答案。如果您不打算解释您的解决方案,请使用评论部分使用Parcelable是提出的解决方案,如果您想知道原因,请检查以下内容:
test = (ArrayList<Food>) b.getSerializable("results");