onItemClickListener没有被解雇

时间:2016-03-01 09:41:37

标签: android listview onitemclicklistener

onItemClcikListener在引用列表视图时不会被触发。

这是我的row.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="match_parent"
    android:orientation="vertical">

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView" >
                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_marginLeft="20dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="8dp">

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:id="@+id/imageView4"
                        android:src="@drawable/ic_launcher"
                        android:layout_marginRight="10dp"
                        android:layout_weight="1"/>

                    <LinearLayout
                        android:orientation="vertical"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:textAppearance="?android:attr/textAppearanceMedium"
                            android:textColor="#000"
                            android:text="BioMass Pellets"
                            android:id="@+id/productName" />

            </LinearLayout>
        </LinearLayout>
</ScrollView>
</LinearLayout>

这是我的main.xml

<LinearLayout>
     <ListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"
        android:textColor="@android:color/black" />

</LinearLayout>

在onCreateView方法中,我在设置适配器后返回了rootview。我试图为listview设置setOnItemClickListener,如下所示,

mListView = (ListView) mRootView.findViewById(R.id.list);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {

Toast.makeText(getActivity(), "" + position + " is the position you clicked!!", Toast.LENGTH_SHORT).show();
     } });

3 个答案:

答案 0 :(得分:2)

试试这个。
在包含Listview.it的活动类中使用listview.setOnClickListener()将工作完全正常在查看代码时,您似乎在Adapter类中使用它

答案 1 :(得分:1)

在您的LinearLayout或list_item的父布局中,使用android:descendantFocusability="blocksDescendants"。 你的项目类应该是

<?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="match_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical">

答案 2 :(得分:1)

您缺少将android:descendantFocusability="blocksDescendants".添加到根布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="blocksDescendants"
    android:orientation="vertical">

也 只需加上

 android:focusable="false"
 android:clickable="false"

在listView的行/ item.xml中。