列表视图itemclick不工作

  1. 我在我的ListView显示ImageButton中有一个ListView。

  2. 我为ImageButton设置了focusalble“false”和focusableInTouchMode“false”。

  3. 我设置ListView.OnItemClickListner。 当我运行我的项目这是显示我的ListView。

  4. 但是当我点击Listview它不工作。

  5. 然后我删除布局中的ImageButton并再次运行我的项目,当我点击ListView它的工作

  6. 什么错?

android:focusable="false" android:focusableInTouchMode="false" 

不适用于ImageButton。

在您的布局xml中,将此属性添加到根布局

 android:descendantFocusability="blocksDescendants" 

它适用于具有ImageButton的列表视图。

你不是唯一的受害者:) 这种行为通常被认为是Android开发者的一个错误。看看他们对话的这个链接 。

为了解决您的问题,只需在您的根布局中包含android:descendantFocusability="blocksDescendants"属性即可。

其实没有什么是错的 你在做什么是好的。 但我想你忘了一个关键因素ImageButton有它自己的OnClickListener。 所以当你将ImageButtonembedded到ListView行中时ListView.OnItemClickListner不起作用,因为Click / touch是由ImageButton调用的,这是因为ListView没有得到你的点击/触摸事件。 检查这个链接: 如何在listactivity列表中buttonListListItemClick?

如果您使用自定义列表Imageview ,并且在自定义列表Textview行项目列表中,如果只有TextviewImageview ,则应删除android:inputType="" 。 它引起了可聚焦性的问题。

可能是你已经写了适配器类中的图像buttononclick监听器

例如:

 imageButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); 

如果为listItem设置了onclick监听器,它将自动消耗操作input,因此列表项不会被点击。

我猜你正在使用自定义列表视图项目只是尝试设置为您的custom_list_view_item.xml所有视图设置focusable “false”和custom_list_view_item.xml “假”如果您使用图像的点击侦听器不担心图像button适配器中的button,它也将正常工作。 只需对您的custom_list_view_item.xml中的所有视图执行focusable“false”和focusableInTouchMode“false”