使用onItemClickListener的自定义Listview不工作,因为我在listview中的Button上使用OnClickListener

时间:2013-03-08 11:55:08

标签: android android-listview android-arrayadapter android-custom-view

我正在开发和具有listview的应用程序,这是一个自定义列表视图,里面有一个按钮和textview,这个listview包含textview和一个按钮。我在按钮上使用了Onclick监听器,所以我无法在Listview上使用onItemClick Listener,我该怎么做才能实现那个。

这是代码

<ListView
        android:id="@+id/lvMenuItem"
        android:layout_width="350dp"
        android:dividerHeight="3dp"
        android:layout_height="wrap_content" >
    </ListView>

LvItem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="65dp"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imgMenu"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:clickable="false"
        android:contentDescription="@string/app_name"/>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tvSubMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:text="" />

        <TextView
            android:id="@+id/tvType"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:text="" />
        <TextView
        android:id="@+id/tvPrice"
        android:layout_width="wrap_content"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_height="wrap_content"
        android:text="" />
    </LinearLayout>

    <Button
        android:id="@+id/btnOrder"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/btnOrder" />

</LinearLayout>

按钮上的OnclickListner工作正常,我应该为Listview上的onItemCLickListner做什么。请指导我

enter image description here

1 个答案:

答案 0 :(得分:1)

只需让Button无法调焦,然后您就可以收到Button.OnClick回调以及ListView.OnItemClick

<Button
    android:id="@+id/btnOrder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/btnOrder"
    android:focusable="false"
    android:focusableInTouchMode="false"/>

您可以找到更详细的解释here