我的目标是
创建一个自定义对话框,该对话框由顶部的可滚动列表视图和底部的“确定”按钮组成。对于列表视图中的每一行,我都放置了一个复选框,我希望捕获单击“确定”时选中的复选框。
问题
在查看了一些在线教程以及一些问答后,我想出了一个基本的方法。我所做的是
1. 在列表视图的适配器中,我在创建时通过 setTag() 将选项名称附加到每个复选框
2. 在适配器中设置一个 onCheckedChangeListener ,将选中的选项放入数组中或删除如果取消选择该选项
3. 在主 UI 活动的 onCreateDialog 中,将 OnClickListener 附加到“确定”按钮,并使其从适配器检索选项数组(在步骤 2 中获得)。
它最终起作用;但我认为这太麻烦而且不优雅。我曾考虑将 onItemClickListener 用于列表视图或将自定义视图放入 AlertDialog (提供更好的按钮/复选框管理),但经过一些试验后放弃了。
有没有人能想到更好的方法?