当用户选择ListView
中的一个/多个项目时,我正在尝试显示额外的菜单项(上下文操作栏)。基本上我正在检查所选项目的数据库中是否有一个字段设置为true。如果是这样,我添加额外的菜单项。
我尝试在数据库中查询onItemCheckedStateChanged()
中所选项目并使菜单无效。这将调用onPrepareActionMode()
我可以在需要时显示额外选项。
这不起作用,因为在onItemCheckedStateChanged()
和onPrepareActionMode()
中选择了特殊数据库列设置为false的项目时,不会记住已将数据库列设置为true时选择的选项被调用的额外菜单项被删除。
我怎样才能更好地接近这个?基本上我需要一种方法来记住所有选中的ListView
项目,这些项目的数据库中的额外字段设置为true,这样我就可以显示额外的菜单项 - 反之亦然,当没有选择{{{ 1}}项具有该DB字段。
答案 0 :(得分:1)
当必须同时选择两种类型的项目时(例如,db中为true
,false
为一项),您必须决定如何处理这种情况。如果您决定允许,请在活动中的某个位置跟踪按钮状态。我将为您的活动添加一个私有整数成员,并在选择数据库中包含true
的项目时增加此数字,并在取消选择此项目时减少该数量。如果它在onPrepareActionMode
中为零 - 请勿显示您的按钮。