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();
} });
答案 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中。