【问题标题】:How to populate a ListView based on the action in previous activity?如何根据先前活动中的操作填充 ListView?
【发布时间】:2019-01-17 03:31:00
【问题描述】:
目前我的主要活动中有三个按钮。每个按钮都会打开一个新活动,其中包含一个包含不同照片的 ListView。每个ListView 都有不同的大小。
我已经为我的问题创建了一个架构:
我的问题是:如何只创建一个包含ListView 的活动并根据单击的按钮使用不同的照片填充它?
我想我必须使用intent.putExtra 来定义按钮编号,并在if 语句中使用此编号将图像添加到ListView。但我不确定这个解决方案。
【问题讨论】:
标签:
android
listview
android-intent
【解决方案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");