Ada*_*ela 5 android arraylist android-intent android-activity
我正在尝试在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);
Run Code Online (Sandbox Code Playgroud)
这是我的onCreate方法,用于获取数组列表的acticity.
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();
}
Run Code Online (Sandbox Code Playgroud)
检索列表的类应该从列表中的数据创建listView.每当我运行代码时,我都会在尝试制作列表时获得nullPointerExceptions.我知道我的listView代码工作,所以我已经将问题缩小到通过数组列表的意图.
提前致谢.
编辑:以下是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
Run Code Online (Sandbox Code Playgroud)
这取决于arraylist的类型
putIntegerArrayListExtra(String name, ArrayList<Integer> value)
putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value)
putStringArrayListExtra(String name, ArrayList<String> value)
putCharSequenceArrayListExtra(String name, ArrayList<CharSequence> value)
然后,你可以从你的下一个活动通过更换阅读put与get与密钥字符串作为参数,如
myIntent.getStringArrayListExtra("arrayListName");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3036 次 |
| 最近记录: |