如何在Android ListView中设置选定的项目?

我是一个Android新手,试图学习UI方面的事情,它正在做我的头。这就是我现在所拥有的:

breeds_listing.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@+id/breedsListView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:dividerHeight="0px" android:divider="#00000000"></ListView> </LinearLayout> 

breeds_listing_item.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_item_background" android:orientation="horizontal" > <TextView android:id="@+id/allbreeds_single_item" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal"></TextView> </LinearLayout> 

list_item_background.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#043402" /> <stroke android:width="3dp" color="#ffff8080" /> <corners android:radius="8dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> 

我正在努力解决的是如何devise选定的项目? 目前选定的项目有一个可怕的橙色背景,在圆形的绿色矩形下,给出了橙色的轮廓效果。 我相信我没有按照最佳做法做事情,所以任何build议或改进将不胜感激。

非常感谢,D.

Solutions Collecting From Web of "如何在Android ListView中设置选定的项目?"

我这样做:

  <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape > <solid android:color="#929292" /> </shape> </item> <item> <shape > <solid android:color="#FFFFFF" /> </shape> </item> </selector> 

所以你可以使用这个属性android:state_pressed="true"

在我的例子中,单元格背景只会是白色的,按下时会是灰色的。

我希望它有帮助!

你必须使用一个StateListDrawable 。

你可以在这里find一个ListView项目的例子。

如果你想要一个特定的颜色/可绘制的项目被选中,使用android:state_focused="true"