<Object> ArrayList to second Activity using getSerializable 問題



在第一个活动中,我有一个ArrayList,它必须传递给第二个活动。

这是第一个活动:

public ArrayList<ItemContact> selectedContacts = new ArrayList<>(); //filled in the rest of the code
Intent intent = new Intent(this, SummaryActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("selectedContacts", selectedContacts);
intent.putExtra("selectedContacts", bundle);
startActivity(intent);

在第二个活动中:

ArrayList<ItemContact> selectedContacts = new ArrayList<>();
selectedContacts = (ArrayList<ItemContact>)getIntent().getExtras().getSerializable("selectedContacts") ;

问题是第二个活动中的selectedContacts始终为null我该怎么修?

编辑:ItemContact已经实现了Serializable,但仍然无法使用

您的对象应该实现Serializable

class ItemContact implements Serializable {
......
} 

首次活动

public ArrayList<ItemContact> selectedContacts = new ArrayList<>(); 
Intent intent = new Intent(this, SummaryActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("selectedContacts", selectedContacts);
intent.putExtras(bundle);
startActivity(intent);

第二活性

ArrayList<ItemContact> selectedContacts = new ArrayList<>();
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
selectedContacts = (ArrayList<ItemContact>)bundle.getSerializable("selectedContacts");

希望这能有所帮助。

使用Parcelable而不是serializable可以提高速度并在活动中传递多个对象数据。

class ItemContact implements Parcelable {
......
} 

首次活动

public ArrayList<ItemContact> selectedContacts = new ArrayList<>(); 
Intent intent = new Intent(this, SummaryActivity.class);
intent.putParcelableArrayListExtra("selectedContacts", selectedContacts);
startActivity(intent);

第二活性

ArrayList<ItemContact> selectedContacts = new ArrayList<>();
Intent intent = getIntent();
selectedContacts = (ArrayList<ItemContact>)intent.getParcelableArrayListExtra("selectedContacts");

如果您想要可序列化,请使用以下代码。使用Serializable实现类。

首次活动

public ArrayList<ItemContact> selectedContacts = new ArrayList<>(); 
Intent intent = new Intent(this, SummaryActivity.class);
intent.putExtra("selectedContacts", selectedContacts);
startActivity(intent);

第二活性

ArrayList<ItemContact> selectedContacts = new ArrayList<>();
Intent intent = getIntent();
selectedContacts = (ArrayList<ItemContact>)intent.getSerializableExtra("selectedContacts");

相关内容

  • 没有找到相关文章

最新更新