我有类播放列表扩展ArrayList 我在
中使用Playlist playlist = new Playlist();
intent.putExtra("playlist", playlist);
然后我试着把它拿回来:
if (getIntent().hasExtra("playlist")) {
playlist = (Playlist)(getIntent().getExtras().getStringArrayList("playlist"));
}
但是收到错误: 引起:java.lang.ClassCastException:java.util.ArrayList无法强制转换为pl.mal.player.Playlist。 我知道问题是我想将基类转换为子类。但我不知道在这个例子中如何避免它。有人能帮助我吗?
答案 0 :(得分:1)
getStringArrayList
无法返回Playlist
个对象。你必须做类似的事情
List<String> list = getIntent().getExtras().getStringArrayList("playlist");
Playlist playlist = new Playlist();
playlist.addAll(list);
你只能将一个对象强制转换为超类&amp;具体运行时类型实现的接口。在这种情况下,这是ArrayList
。如果您想要更改,则必须修改getStringArrayList
方法,因为其中的内容明确说明new ArrayList
答案 1 :(得分:0)
您的播放列表类必须实现parcelable才能将其传递给额外的。
http://developer.android.com/reference/android/os/Parcelable.html