У меня возникли проблемы с началом новой деятельности, когда я выразите намерение в ArrayList песен, мой код здесь:Как передать ArrayList и целое число к новой деятельности (Android)
ArrayList<Song> songs = new ArrayList<>();
songs.add(new Song("title", "artist"));
Intent intent = new Intent(this, Game.class);
int dif = 0;
Bundle bundle = new Bundle();
if (songs != null) {
bundle.putParcelableArrayList("DEVICE_SONGS", songs);
bundle.putInt("DIFFICULTY", dif);
intent.putExtras(bundle);
}
startActivity(intent);
Песня уже реализует Parcelable.
Когда startActivity
работает, Game
активность не начинается, вместо этого она переходит к родительской активности без ошибок в журналах.
Я пробовал это без добавления bundle
в intent
, и начинается правильная работа.
Любая помощь с этим ценится, благодаря
EDIT
я сейчас попробовал с putParcelableArrayListExtra()
следующим образом:
if (songs != null) {
intent.putParcelableArrayListExtra("DEVICE_SONGS", songs);
intent.putExtra("DIFFICULTY", dif);
}
и у меня такая же проблема. Я также не пытаюсь получить доступ к дополнительным функциям в новой деятельности.
EDIT 2
После еще несколько испытаний (на виртуальном устройстве), это на самом деле работает, поэтому я думаю, что это делать с устройством, я использую (OnePlus X с кислородом OS) , Итак, теперь вопрос в том, как заставить его работать на всех устройствах?
Попробуйте с putParcelableArrayListExtra. https://developer.android.com/reference/android/content/Intent.html#putParcelableArrayListExtra(java.lang.String, java.util.ArrayList extends android.os.Parcelable>) –
@MiguelBenitez Спасибо! Это работает на виртуальном устройстве (но не на моем) – chilliBeanDream
Вы можете попытаться отправить Parcelable Array вместо ArrayList.Проверьте мой ответ –