У меня есть ArrayList < Объект>, где Объект - это экземпляр класса I. Я хочу передать этот новый список массивов обратно в основное действие, чтобы поместить его в элемент навигации.Передача ArrayList <Object> back to main Activity (Android)
Как передать объект ArrayList < Объект> от деятельности назад к основной?
Я попытался bundle.getParcelableArrayList однако он говорит мне, что «Прогнозный Тип объект для параметра типа T не в пределах своих границ, должен осуществлять 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
Вы можете объявить одноэлементный класс и добавить его в свой класс. И вы можете получить к нему доступ из любой деятельности –