我试图在两个活动之间传递一个对象的arraylist,但我的应用程序在第二个活动时崩溃.有人可以帮我解决这个问题......
这是我第一次活动的代码:
Intent i = new Intent();
Bundle b = new Bundle();
b.putParcelableArrayList("songs",(ArrayList<? extends Parcelable>) albumsArray.get(position).getSongs());
Log.v("--", "OK");
i.putExtras(b);
i.setClass(LatestAlbums.this, AlbumDetails.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
和第二个活动的代码:
songs=new ArrayList<Songs>();
Bundle b = this.getIntent().getExtras();
if(b!=null)
songs = b.getParcelable("songs");
Log.v("--", songs.size()+"");
Run Code Online (Sandbox Code Playgroud)
我的logcat输出:
04-03 16:37:03.513: E/AndroidRuntime(6576): FATAL EXCEPTION: main
04-03 16:37:03.513: E/AndroidRuntime(6576): java.lang.RuntimeException: Parcel: unable to marshal value com.musicapp.objects.Songs@419489e8
04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeValue(Parcel.java:1137)
04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeList(Parcel.java:524)
04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeValue(Parcel.java:1097)
04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Parcel.writeMapInternal(Parcel.java:493)
04-03 16:37:03.513: E/AndroidRuntime(6576): at android.os.Bundle.writeToParcel(Bundle.java:1612)
04-03 16:37:03.513: E/AndroidRuntime(6576): …Run Code Online (Sandbox Code Playgroud) android arraylist parcelable android-intent android-activity
如何通过集合就像ArrayList从一个,等Activity另一个是我们用来传递Strings,int意图的putExtra方法的帮助?
任何人都可以帮助我,因为我想List<String>从一个传递Activity到另一个?
我有以下代码:
List<ValueActivity> list = new ArrayList<ValueActivity>();
list = setList();
Intent intent = new Intent(NOTIFICATION);
Bundle bundle = new Bundle();
bundle.put ????("list", list);
intent.putExtra("bundle", bundle);
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
如何编写第5行以及如何在目标意图中使用getExtra