我正在努力更好地理解ListView的内部功能,因为它涉及选择一个或多个项目 - 实际上令人惊讶的是,在我的理解中,这对我来说是多么困难。
默认情况下,定期单击ListView项目会将该项目的“已检查”状态设置为true。 如何覆盖此行为,以便不会进行此选择?
更基本的是,这里的基础ListView机制是什么?行视图的默认值是onClick然后调用ListView的onItemClick / LongClick处理程序,或者这个点击处理是如何排序的?
我确实想要允许multipleChoice的choiceMode,但我只想在onItemLongClick上选择它。 覆盖onItemClick不会改变此行为,并且在适配器getView()函数中覆盖行视图的onClick处理程序似乎会阻止ListView onItemClick和onItemLongClick发生。
以下是我的申请中更详细的背景
我的目标是让我的ListActivity显示一个ListView,其功能如下:
我的申请结构是:
我对ListView的内置功能的理解让我到了
的地步答案 0 :(得分:1)
保持ArrayList维护ListView项目的选定位置。选择ListView项时,检查该ArrayList是否项目位置在ArrayList中。如果item不在ArrayList中,则将Item的状态更改为checked,否则将状态更改为unchecked,并从ArrayList中删除position对象。这对我有用。