有一项扩展ListActivity
的活动。
该列表由扩展BaseAdapter
的自定义适配器备份。
getListView().setFocusable(true);
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
我在(getSelectedItemPosition() == ListView.INVALID_POSITION)
进行了简单的onPrepareOptionsMenu()
检查,以禁用需要选择项目的项目。
现在,我在启动活动后做了什么(行动发生了 在模拟器下,ver.1.1)它看起来像:
为什么这些(3,4)事情不断发生在我身上? :) TIA。
答案 0 :(得分:4)
依靠selectedItemPosition
上的ListView
可能是一种危险的方法。根据我的经验,如果列表失去焦点(通过点击其他内容),selectedItemPosition
将设置为INVALID_POSITION
。
基本上,如果您的商品没有橙色的“突出显示”外观,请指望selectedItemPosition
为空。
作为替代方案,您可能希望通过覆盖onItemClick
和onItemSelection
方法并保存所选项目的索引来记住所选项目,然后使用它来控制菜单选项的可用性。