在传递类中传递Object的代码
final ArrayList<SongDetails> Songinfo = getSongsFromDirectory(f);
public void onItemClick(AdapterView a, View v, int position, long id) {
Intent intent = new Intent(getActivity(), NowPlaying.class);
intent.putExtra("Data1",songinfo);
intent.putExtra("Data2",position);
startActivity(intent);
}
});
检索类中的代码
Intent i = getIntent();
ArrayList<SongDetails> Songinfo2 = (ArrayList<SongDetails>)i.getSerializableExtra("Data1");
position=i.getIntExtra("Data2", 1);
我已经在类和SongDetails类中实现了Serializable(我传递的是其中的对象)
答案 0 :(得分:1)
如果您想传递一个对象,可以使用Parcelable
interface。 Bundles
可以保留任何parcelable,并且Intent
可以在它们跨越不同Bundle
和进程之间的边界时保留Activity
任何{{1}}。
答案 1 :(得分:1)
考虑使用包裹.....
使用parcel是一种比使用serializable更好更快的方式
答案 2 :(得分:0)
使用套装,例如
Intent myIntent = new Intent(view.getContext(),Mapper.class);
Bundle b = new Bundle();
b.putString("A_STRING", aString);
myIntent.putExtras(b);
startActivityForResult(myIntent, 0);
然后
Intent intent = this.getIntent();
Bundle b = intent.getExtras();
aString = b.getString("A_STRING");
但要适应你的目的。
补充:大概你需要使用像
这样的东西b.putParcelableArrayList(String key, ArrayList<? extends Parcelable> value)
和
b.getParcelableArrayList(String key)