Я пытаюсь передать списки массивов между действиями в Android. Списки содержат строки. Я много читал о Parcelable. Нужно ли создавать Parcelable для передачи списка массивов String ? На данный момент я использую putStringArrayListExtra () и getSringArrayListExtra () для передачи списков через намерения.
Вот мой код.
Intent load = new Intent(getApplicationContext(), HelloTabWidget.class);
load.putStringArrayListExtra("albums", albums);
load.putStringArrayListExtra("songs", songs);
load.putStringArrayListExtra("artists", artists);
load.putStringArrayListExtra("fileName", fileName);
Это мой метод onCreate для действия, которое получает список массивов.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.songlist);
Bundle extras = getIntent().getExtras();
isArtists = extras.getBoolean("artists");
isAlbums = extras.getBoolean("albums");
isSongs = extras.getBoolean("songs");
Intent get = getIntent();
songs = get.getStringArrayListExtra("songs");
artists = get.getStringArrayListExtra("artists");
albums = get.getStringArrayListExtra("albums");
fileName = get.getStringArrayListExtra("fileName");
if(isArtists == true)
updateArtistsList();
else if(isAlbums == true)
updateAlbumsList();
else if(isSongs == true)
updateSongList();
}
Предполагается, что класс, который извлекает список, создает listView из данных в списках. Всякий раз, когда я запускаю код, я получаю nullPointerExceptions при попытке сделать списки. Я знаю, что мой код listView работает, поэтому я сузил проблему до намерений, которые передают списки массивов.
Заранее спасибо.
EDIT:
Вот первые несколько строк из logcat.
12-28 03:03:42.313: E/AndroidRuntime(873): FATAL EXCEPTION: main
12-28 03:03:42.313: E/AndroidRuntime(873): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adam.mediaplayer/com.adam.mediaplayer.HelloTabWidget}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adam.mediaplayer/com.adam.mediaplayer.MakeListActivity}: java.lang.NullPointerException