gpt4 book ai didi

java - 如何在 android studio 中的 Activity 之间共享数组列表?

转载 作者:行者123 更新时间:2023-12-01 16:33:27 25 4
gpt4 key购买 nike

我正在尝试构建一个 Android 应用程序,但遇到了问题。首先,我编写了一个方法来访问您的手机内存并导入一个 Excel 文件,该文件包含两列,其中的值代表时间和心率。我从excel读取数据并将其存储到数组列表中,这个数组列表是DataFitbit 类型(DataFitbit 是我制作的一个类,其中包含两个参数,如 Excel 文件、时间和心率)。现在我想在其他 Activity 中使用这些数据创建一个图表,但我认为为了在这两个 Activity 之间共享我的数组列表而编写的代码不起作用。我没有任何错误,但是当我按下创建另一个我想要创建图表的 Activity 的按钮时,应用程序崩溃了。

这是为了在 Activity 之间共享数组列表而编写的代码:

Bundle bundle = getIntent().getExtras();
ArrayList<DateFitbit> dateFitbit = (ArrayList<DateFitbit>) bundle.get("arraylist");
ListView listView = findViewById(R.id.listView);
ArrayAdapter<DateFitbit> items = new ArrayAdapter<DateFitbit>(this,android.R.layout.simple_list_item_1);
listView.setAdapter(items);

打开包含图表的新 Activity 的代码是:

public void openChartActivity(){
Intent intent = new Intent(this, ChartActivity.class);
intent.putExtra("arraylist",dateFitbit);
startActivity(intent);
}

我第一次尝试在 ListView 中查看数据,以确保共享已完成,但正如我所说,有些东西效果不佳。

你对我有什么建议吗?

最佳答案

您没有传递基本的 String ArrayList,而是使用 ArrayList 的自定义数据类型对象。

要使其发挥作用,您需要执行此处提到的操作:

1. 现在,将其传递给 Intent :

Bundle bundle = new Bundle();
bundle.putSerializable("arraylist",(Serializable) dateFitbit);
intent.putExtra("Bundle",bundle);
startActivity(intent);


2.在接收 Activity 中,获取为:

Intent intent = getIntent();
Bundle bundle = intent.getBundleExtra("Bundle");
ArrayList<DataFitBit> dateFitbit= (ArrayList<DataFitBit>) bundle.getSerializable("arraylist");

这将保留您的自定义 ArrayList 模型,然后您可以根据需要使用它。

关于java - 如何在 android studio 中的 Activity 之间共享数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62006274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com