将CheckBox添加到ListView行视图会使行无法单击

时间:2013-01-12 03:47:15

标签: android listview checkbox

我正在尝试创建一个类似于Gmail应用的ListView,其中每行左侧有一个CheckBox,以便通过上下文操作栏进行多项选择和操作,同时,允许点击每一行转换到另一个活动。

最初,在添加CheckBox之前,行会指示他们使用我正在使用的Holo主题中的浅蓝色背景颜色进行选择,并在点击时调用onListItemClick中的ListFragment onItemLongClick {@ 1}}长时间点击。

当我将OnItemLongClickListener添加到行视图的布局.xml文件中时,背景不再改变颜色,我不再接收点击或长按事件。如果我在我的视图.xml中将CheckBox添加到顶部android:longClickable="true",那么我会再次开始获取长期点击事件。但ViewGroup没有让我点击活动。并且都不允许背景蓝色选择指示返回。只有android:clickable="true"本身在触摸时才会提供蓝色背景的视觉触摸指示。

我需要做些什么才能获得正常的视觉选择指示,并点击视图中CheckBox的{​​{1}}行上的事件?

以下是我的观点的相关部分.xml:

ListView

2 个答案:

答案 0 :(得分:11)

我在这个主题上写了blog post一段时间后你可能会觉得有帮助。实际上,问题是添加可聚焦元素(如CheckBoxButton)会禁用单击整个列表项的功能,并且必须禁用它们的可聚焦性。您不应该在主布局中添加任何clickable标志。

答案 1 :(得分:0)

在CAB中添加复选框时,请将其设为焦点=" false",这将解决只有一次调用onItemCheckedStateChanged的问题。