我是Android编程的新手,我正在尝试将一组自定义对象发送到另一个活动。在第一个活动中,我有一个创建意图的函数,并将对象数组添加到它:
public void openSchedule() {
Intent nextScreen = new Intent(getApplicationContext(), Schedule.class);
nextScreen.putExtra("array", tasks);
startActivity(nextScreen);
}
但是,我不确定如何在下一个屏幕上获取该数据。
有没有办法在下一个活动的代码中获取该数组,即使" tasks"是一组自定义对象?
答案 0 :(得分:2)
您是否使用Gson进行了尝试?
public void openSchedule() {
Intent nextScreen = new Intent(getApplicationContext(), Schedule.class);
String arrayAsString = new Gson().toJson(tasks);
nextScreen.putExtra("array", arrayAsString);
startActivity(nextScreen);
}
在第二个活动中,将额外数据解析回List<T>
public void parseBack(){
String arrayAsString = getIntent().getExtras().getString("array");
List<YourType> list = Arrays.asList(new Gson().fromJson(arrayAsString, YourType[].class));
}
答案 1 :(得分:1)
让自定义对象实现Parcelable,以便使用Intent
类中的putParcelableArrayListExtra。
答案 2 :(得分:0)
你没有经常搜索......
选中Parcelable界面:How to send an object from one Android Activity to another using Intents?