0
我有一个ArrayList < Object>其中Object是我创建的类的实例。我想将这个新的数组列表传递回主要活动,以将其放入navigationdrawer项目中。传递ArrayList <Object>返回主活动(Android)
如何将ArrayList < Object>从活动传递回主活动?
我曾尝试bundle.getParcelableArrayList但它告诉我,“为类型参数T推断Object类型是不在其范围,应实行android.os.parcelable”
这里是我的代码:
public void createPlaylist(String playlistName, ArrayList<Song> newPlaylistSongsArray) {
Intent returnIntent = new Intent();
Bundle b = new Bundle();
b.putParcelableArrayList("array", (ArrayList<? extends Parcelable>) newPlaylistSongsArray);
returnIntent.putExtra("playListName", playlistName);
returnIntent.putExtra("array", newPlaylistSongsArray);
setResult(Activity.RESULT_OK,returnIntent);
finish();
}
和:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == Activity.RESULT_OK){
String newPlaylistName = data.getStringExtra("playListName");
Bundle b = getIntent().getExtras();
final ArrayList<Song> newPlaylist = b.getParcelableArrayList("array");
Toast.makeText(MP3Player.this, "New Playlist Created", Toast.LENGTH_LONG).show();
}
if (resultCode == Activity.RESULT_CANCELED) {
Toast.makeText(MP3Player.this, "Shit went wrong yo!", Toast.LENGTH_LONG).show();
}
}
}
你'Object'类需要实现'Parcelable'。您无法通过意向传送复杂的数据,例如您自己的自定义对象,而无需先将它们序列化。 – b85411
请注意,您有'ArrayList'而不是'ArrayList
你可以声明一个单例类,并将其添加到你的类中。你可以从任何活动访问这个 –