如何根据先前活动中的操作填充 ListView?

Posted

技术标签:

【中文标题】如何根据先前活动中的操作填充 ListView?【英文标题】:How to populate a ListView based on the action in previous activity? 【发布时间】:2019-01-17 03:31:00 【问题描述】:

目前我的主要活动中有三个按钮。每个按钮都会打开一个新活动,其中包含一个包含不同照片的 ListView。每个ListView 都有不同的大小。

我已经为我的问题创建了一个架构:

我的问题是:如何只创建一个包含ListView 的活动并根据单击的按钮使用不同的照片填充它?

我想我必须使用intent.putExtra 来定义按钮编号,并在if 语句中使用此编号将图像添加到ListView。但我不确定这个解决方案。

【问题讨论】:

你应该展示你的努力,否则社区将继续投票。 【参考方案1】:

您为什么不确定这个解决方案? 如果要打开的activity的布局在所有3种情况下都相同,唯一的区别是列表的内容,那么这是最简单和最好的解决方案。 只需将一个整数值传递给意图并在打开的活动的 onCreate() 中检查它。根据值创建并设置列表的适配器,您就完成了。 这是最有效的方式,并且消耗的资源更少。

【讨论】:

【参考方案2】:

创建 3 个Fragments 并在每个按钮上按下只需加载所需的Fragment。每个Fragments 都应该有ListView/RecyclerView 并使用不同的数据源。就是这样 :) 当然,这可以通过多种方式实现,但这就是我的处理方式。


祝你好运 :)

【讨论】:

谢谢,我试试这个【参考方案3】:

创建 1 个自定义适配器,它采用整数的 Arraylist(即资源 id)并将这些 id 设置为适配器中的 imageview。

在按钮的活动 onclick 中将相关的 id 添加到 Arraylist 并通过意图传递给下一个活动。您可以从以下意图传递和获取数组列表

1) intent.putStringArrayListExtra("array_list", array_list); 2) intent.getStringArrayListExtra("array_list");

【讨论】:

以上是关于如何根据先前活动中的操作填充 ListView?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据先前的用户选择在 Django 中预填充(多个)ChoiceField

如何根据同一仪器中先前的复选框结果自动填充 REDCap 复选框

如何使用 VBA 根据活动工作表中的单元格自动填充 Excel 表单?

Selenium WebDriver .getWindowHandles()返回先前关闭的窗口,如何区分这些窗口和活动窗口?

根据先前的选择填充下拉列表

根据另一列的先前值填充一列