1

对话框截图

我的目标是
创建一个自定义对话框,该对话框由顶部的可滚动列表视图和底部的“确定”按钮组成。对于列表视图中的每一行,我都放置了一个复选框,我希望捕获单击“确定”时选中的复选框。

问题
在查看了一些在线教程以及一些问答后,我想出了一个基本的方法。我所做的是

1. 在列表视图的适配器中,我在创建时通过 setTag() 将选项名称附加到每个复选框
2. 在适配器中设置一个 onCheckedChangeListener ,将选中的选项放入数组中或删除如果取消选择该选项
3. 在主 UI 活动的 onCreateDialog 中,将 OnClickListener 附加到“确定”按钮,并使其从适配器检索选项数组(在步骤 2 中获得)。

它最终起作用;但我认为这太麻烦而且不优雅。我曾考虑将 onItemClickListener 用于列表视图或将自定义视图放入 AlertDialog (提供更好的按钮/复选框管理),但经过一些试验后放弃了。

有没有人能想到更好的方法?

4

2 回答 2

0

阅读有关具有多选模式的警报对话框。

于 2012-08-01T11:33:54.177 回答
0

我需要一个相当复杂的对话框,最后我把它写成一个扩展 RelativeLayout 的小部件。单击我的日历图标时,它会启动一个使用小部件的活动,根据数据库中的内容填充日历中的天数:

日历小部件

当您扩展一个布局时,您可以完全控制它的大小、布局以及它在画布上绘制的内容。该活动实现 OnTouchListener 以获取日历上的哪个日期已被触摸 - 我确信这同样适用于添加图像并获取已选中的复选框。

于 2012-08-01T18:09:46.223 回答