【问题标题】:How can I share array lists between activities in android studio?如何在 android studio 中的活动之间共享数组列表?
【发布时间】:2020-05-25 16:03:06
【问题描述】:

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

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

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);

打开一个包含图表的新活动的代码是:

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

我第一次尝试将我的数据查看到列表视图中,以确保共享已完成,但正如我所说,有些东西效果不佳。

你对我有什么建议吗?

【问题讨论】:

  • 请分享异常信息。
  • 2020-05-25 19:19:14.396 19141-19141/com.example.nuthealth E/ImportActivity: verifMem: NULLPOINTEREXCEPTION 尝试获取空数组的长度
  • 2020-05-25 19:18:47.856 19141-19141/com.example.nuthealth E/Minikin:无法获取 cmap 表大小!
  • 2020-05-25 19:18:47.855 19141-19167/com.example.nuthealth E/MemoryLeakMonitorManager: MemoryLeakMonitor.jar 不存在!
  • 当我按下创建新活动的按钮时,我想在其中创建图表,出现一些错误,但我无法阅读它们,因为它消失了。

标签: java android android-studio


【解决方案1】:

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

为此,您需要执行此处提到的操作:

1. 现在,将其传递为:

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


2.在接收活动中,获取为:

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

这将保留您的自定义 ArrayList 模型,然后您可以随意使用它。

【讨论】:

  • @DenisaMărginean 有什么错误或问题不起作用?
  • 您是否尝试在您的DataFitBit 课程中添加implemenrs java.io.Serializable
  • 我试过了,现在它不再崩溃了,但是接收活动是空的。
  • 当我说应用程序崩溃时,我的意思是:当我按下创建接收活动的按钮时,我的屏幕变白并返回到上一个活动
猜你喜欢
  • 1970-01-01
  • 2011-07-13
  • 2013-04-12
  • 2016-02-14
  • 2014-04-13
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多