在我的应用程序中,我有一个带有适配器的海关 Listview。在我的列表视图中,我添加了一个带有focusable=false的复选框,以确保 listItem 仍然是可聚焦的。在OnCheckedChangeListener上,我调用list.setItemChecked以确保它触发上下文菜单。When a row is selected (not with the checkbox) it's starting an activity. (编辑行内容)
在我的活动中,我有这些行以在选择项目时启动上下文菜单(使用复选框)
transactionList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
transactionList.setMultiChoiceModeListener(multiChoiceMode);
问题是由于 CHOICE_MODE_MULTIPLE_MODAL 当显示上下文菜单时我无法再次单击行。当我单击行时,它只选择或取消选择行。
我正在考虑使用 CHOICE_MODE_MULTIPLE 而不是 CHOICE_MODE_MULTIPLE_MODAL 并自己开始操作,但我不知道是否有更好的方法来做我想做的事情。
事实上,我想要的和 Gmail 应用程序完全一样。您可以选择行以进行自定义操作(删除、共享等),但您仍然可以单击一行来查看电子邮件。(即使弹出上下文菜单)
提前致谢 !
附言。英语不是我的第一语言,但我很确定你能理解我在说什么。(所以提前抱歉英语错误)
编辑添加了一些代码,但我只想了解最好的做法。我知道这段代码使用了一半的旧方法,当上下文菜单打开时你无法单击一行,我做了一半的重构来手动触发操作栏 http://pastebin.com/Tig0qYcN
顺便说一句,我的代码在github上
活动:https://github[DOT]com/Dalto/PersonalBankManager/blob/master/PersonalBankManager/src/org/madduck/personalbankmanager/AccountFragment.java
请注意,我的 github 代码可能会更改,并且可能与问题无关