如何在点击或选择时更改android列表项的颜色?

UMA*_*MAR 11 android

可能重复:
如何在焦点和单击上更改ListView项目的颜色

朋友们,

我想在Android列表项上更改颜色单击任何一个指导我应该使用哪个属性来实现此功能?

实际上,当用户点击列表项时,他不知道是否被点击了?

这是我的代码.

<ListView android:id="@+id/android:list" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:drawSelectorOnTop="false"
        android:layout_below="@+id/Tablayoutdesign"
        android:cacheColorHint="#000000"
        android:dividerHeight="1dip"
        android:layout_marginTop="63dip"
        android:layout_marginBottom="40dip"
        />
Run Code Online (Sandbox Code Playgroud)

San*_*esh 27

Step1:在ListView中嵌入android:listSelector属性,如下所示.

<ListView android:id="@+id/android:list" android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_below="@+id/Tablayoutdesign"
        android:cacheColorHint="#000000"
        android:dividerHeight="1dip"
        android:layout_marginTop="63dip"
        android:layout_marginBottom="40dip"

        />
Run Code Online (Sandbox Code Playgroud)

步骤2:创建一个名为listselector的新xml,并将以下代码放入其中

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@drawable/selected" /> 

</selector> 
Run Code Online (Sandbox Code Playgroud)

Step3:创建一个名为colors.xml的文件,在该文件中添加以下代码

<resources>
    <drawable name="focused">#ff5500</drawable>
    <drawable name="selected">#FF00FF</drawable>
</resources>
Run Code Online (Sandbox Code Playgroud)

在您的Java代码中添加此行

ListView lv= (ListView) findViewById(R.id.list);
lv.setSelector( R.drawable.listselector);
Run Code Online (Sandbox Code Playgroud)