Android根据数据库字段动态添加菜单项

时间:2012-04-01 21:51:39

标签: android android-listview android-menu

当用户选择ListView中的一个/多个项目时,我正在尝试显示额外的菜单项(上下文操作栏)。基本上我正在检查所选项目的数据库中是否有一个字段设置为true。如果是这样,我添加额外的菜单项。

我尝试在数据库中查询onItemCheckedStateChanged()中所选项目并使菜单无效。这将调用onPrepareActionMode()我可以在需要时显示额外选项。

这不起作用,因为在onItemCheckedStateChanged()onPrepareActionMode()中选择了特殊数据库列设置为false的项目时,不会记住已将数据库列设置为true时选择的选项被调用的额外菜单项被删除。

我怎样才能更好地接近这个?基本上我需要一种方法来记住所有选中的ListView项目,这些项目的数据库中的额外字段设置为true,这样我就可以显示额外的菜单项 - 反之亦然,当没有选择{{{ 1}}项具有该DB字段。

1 个答案:

答案 0 :(得分:1)

当必须同时选择两种类型的项目时(例如,db中为truefalse为一项),您必须决定如何处理这种情况。如果您决定允许,请在活动中的某个位置跟踪按钮状态。我将为您的活动添加一个私有整数成员,并在选择数据库中包含true的项目时增加此数字,并在取消选择此项目时减少该数量。如果它在onPrepareActionMode中为零 - 请勿显示您的按钮。