Listview itemclick无效

时间:2013-11-26 04:07:06

标签: android listview

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

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

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

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

  5. 然后我在布局中删除了ImageButton并在我点击ListView它再次运行我的项目

  6. 出了什么问题?

6 个答案:

答案 0 :(得分:65)

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

不适用于ImageButton。

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

android:descendantFocusability="blocksDescendants" 

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

答案 1 :(得分:7)

您不是唯一的受害者:) 此行为通常被Android开发人员视为错误请查看他们对话的link

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

答案 2 :(得分:1)

其实没有错。你在做什么都没关系。但我认为你忘记了一个关键因素ImageButton拥有它自己的OnClickListener。因此,当您将ImageButton嵌入到listview行时,ListView.OnItemClickListner无法正常工作,因为ImageButton会调用click / touch,这是因为ListView没有收到您的点击/触摸事件。 查看此链接:How to fire onListItemClick in Listactivity with buttons in list?

答案 3 :(得分:1)

如果您使用的是自定义Listview,并且在自定义Listview行项目列表(仅TextviewImageview中),则应删除android:inputType=""。这会引起焦点问题。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

可能是你已经为适配器类

中的图像按钮编写了onclick监听器

示例:

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


            }
        });

如果为listItem设置onclick侦听器。它将自动使用操作输入 所以不能点击列表项。