如何根据先前活动中的操作填充 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()返回先前关闭的窗口,如何区分这些窗口和活动窗口?