Java 不可选择带有自定义适配器的ListView
我有自定义适配器的ListView。Listview不可单击,但setOnItemLongClickListener工作正常。ListView row.xml如下所示:Java 不可选择带有自定义适配器的ListView,java,android,android-studio,Java,Android,Android Studio,我有自定义适配器的ListView。Listview不可单击,但setOnItemLongClickListener工作正常。ListView row.xml如下所示: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientati
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1" >
<ImageView
android:id="@+id/ivTourImage"
android:layout_width="120dp"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="1">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/lblTourName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Tour Name" />
<RatingBar
android:id="@+id/ratingBarTourStarCount"
style="@style/hotelRatingBarSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:focusable="false"
android:isIndicator="true"
android:numStars="5"
android:stepSize="1.0" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/lblPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Place" />
<TextView
android:id="@+id/lblPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="#b6fffa12"
android:text="Price"
android:textColor="#ff4770ff" />
</RelativeLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal"
android:weightSum="1">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:src="@drawable/adult_icon_16x16" />
<TextView
android:id="@+id/lblAdultCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Adult" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_marginLeft="15dp"
android:src="@drawable/children_icon_16x16" />
<TextView
android:id="@+id/lblChildCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Child" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="16dp"
android:layout_marginLeft="15dp"
android:src="@drawable/meal_icon_16x16" />
<TextView
android:id="@+id/lblMealCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Meal" />
</LinearLayout>
</LinearLayout>
列表视图用法:
<LinearLayout
android:id="@+id/tabTourList"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listViewTourAnounce"
android:layout_gravity="center"/>
</LinearLayout>
如何使我的列表视图可单击?请帮助我按此代码尝试,它可能会对您有所帮助
ListView roomsList
List<String> roomlistdata;
roomlistdata = new ArrayList<String>();
roomsList = (ListView) findViewById(R.id.roomsList);
roomlistdata.add("your data");
ArrayAdapter<String> str = new ArrayAdapter<String>(
getBaseContext(),
android.R.layout.simple_list_item_1,
roomlistdata);
roomsList.setAdapter(str);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {
view.setSelected(true);
String UserSelected = ((TextView) view).getText().toString();
...//contests_listView is a array list
}
}
ListView房间列表
列出roomlistdata;
roomlistdata=新的ArrayList();
roomsList=(ListView)findViewById(R.id.roomsList);
添加(“您的数据”);
ArrayAdapter str=新的ArrayAdapter(
getBaseContext(),
android.R.layout.simple\u list\u item\u 1,
房间列表数据);
roomsList.setAdapter(str);
setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图视图、整型位置、长arg3){
view.setSelected(true);
字符串UserSelected=((TextView)视图).getText().toString();
…//竞赛\u listView是一个数组列表
}
}
position
是int!为什么要编写String currentPosition=position
?项目单击事件没有触发,因此他永远不会进入此方法。我认为xml中存在问题,但我不知道issetOnItemClickListener方法在哪里触发,但选中的行没有更改背景色尝试添加android:DegenantFocusability=“blocksDescendants”到您的行视图(线性布局)的顶视图组我回答了一个类似的问题[此处][1]。希望会有所帮助。[1]:谢谢您的回答,但这些问题都没有解决我的问题