将自定义对象数组传递给android中的另一个Activity

时间:2015-07-24 14:24:01

标签: java android arrays

我是Android编程的新手,我正在尝试将一组自定义对象发送到另一个活动。在第一个活动中,我有一个创建意图的函数,并将对象数组添加到它:

public void openSchedule() {
    Intent nextScreen = new Intent(getApplicationContext(), Schedule.class);
    nextScreen.putExtra("array", tasks);
    startActivity(nextScreen);
}

但是,我不确定如何在下一个屏幕上获取该数据。

有没有办法在下一个活动的代码中获取该数组,即使" tasks"是一组自定义对象?

3 个答案:

答案 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)