Listview itemclick无效

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

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

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

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

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

  6. 怎么了?

Solutions Collecting From Web of "Listview itemclick无效"

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

不适用于ImageButton。

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

 android:descendantFocusability="blocksDescendants" 

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

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

要解决您的问题 – 只需在根布局中包含android:descendantFocusability="blocksDescendants"属性。

其实没什么不对的。 你在做什么都没关系。 但我认为你忘记了一个关键因素ImageButton拥有它自己的OnClickListener。 因此,当您将ImageButton嵌入到listview行时,ListView.OnItemClickListner无法正常工作,因为ImageButton会调用click / touch,这是因为ListView没有获得您的点击/触摸事件。 查看此链接: 如何使用列表中的按钮触发Listactivity中的onListItemClick?

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

可能是你已经为适配器类中的图像按钮编写了onclick监听器

示例:

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

如果为listItem设置onclick侦听器。它将自动使用操作输入,因此可能不会单击列表项。

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