我的目标
我创建了一个自定义对话框,由顶部的可滚动列表视图和底部的“确定”按钮组成。对于列表视图中的每一行,我都放了一个复选框,我希望捕获单击“确定”时选中的复选框。
问题
在这里查看了一些在线教程以及一些Q& A后,我想出了一个基本的方法。我做的是
1.在列表视图的适配器中,我在创建时通过setTag()将选项名称附加到每个复选框
2.在适配器中设置onCheckedChangeListener,将选中的选项放入数组中,或者取消选中的选项(如果取消选择)
3.在主UI活动中的onCreateDialog中,将OnClickListener附加到“确定”按钮,并使其从适配器检索选项数组(在步骤2中获得)。
最终有效;但我认为这太麻烦而且不优雅。我想过将onItemClickListener用于列表视图或将自定义视图放入AlertDialog(提供更好的按钮/复选框管理),但在一些试验后放弃了。
有没有人能想到更好的方法?
答案 0 :(得分:0)
阅读有关multichoice模式的alertdialog。
答案 1 :(得分:0)
我需要一个相当复杂的对话框,最后我把它写成一个扩展RelativeLayout的小部件。单击我的日历图标时,它会启动一个使用该窗口小部件的活动,根据数据库中的内容填充日历中的天数:
扩展布局时,您可以完全控制自身的大小,布局以及在画布上绘制的内容。 该活动实现OnTouchListener以获取触摸日历上的日期 - 我确信同样适用于添加图像并选择已选中的复选框。