Android 如何突出显示列表视图中的项目

Android 如何突出显示列表视图中的项目,android,android-layout,listview,Android,Android Layout,Listview,我正在使用下面的代码,但它不起作用。为什么? 主要活动: final SongAdapter songAdt = new SongAdapter(getApplicationContext(), songList); lv.setAdapter(songAdt); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(Adap

我正在使用下面的代码,但它不起作用。为什么?

主要活动:

final SongAdapter songAdt = new SongAdapter(getApplicationContext(), songList);
lv.setAdapter(songAdt);

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

           view.setSelected(true);
           ...
final SongAdapter songAdt=新的SongAdapter(getApplicationContext(),songList);
低压设置适配器(songAdt);
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
view.setSelected(true);
...
列表视图:

<ListView android:id="@+id/lvP" android:layout_width="fill_parent"
    android:scrollbars="vertical"
    android:fadeScrollbars="false"
    android:layout_height="0dp" android:layout_weight="0.57"android:divider="#555555"
    android:drawSelectorOnTop="true"
    android:background="@drawable/bg_key" />

bg_key.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector
    android:id="@+id/myselector"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Non focused states -->
    <item
        android:state_focused="false"
        android:drawable="@color/activated_color" />
    <item
        android:state_activated="false"
        android:drawable="@color/activated_color" />
    <item
        android:state_selected="true"
        android:drawable="@color/activated_color" />
    <item
        android:drawable="@color/default_color" />
</selector>

color.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="pressed_color">#222222</color>
    <color name="activated_color">#1d1d1d</color>
    <color name="checked_color">#ff0000</color>
    <color name="default_color">#111111</color>
</resources>

#222222
#1d
#ff0000
#111111
编辑:

根据建议,我已经从列表视图中删除了android:background=“@drawable/bg_key”,然后将其添加到 song_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    tools:context=".MainActivity"
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:background="@drawable/bg_key">


    <ImageView
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/song_cover"
        android:scaleType = "fitXY"
        android:src="@drawable/note"
        android:background="#171717"
        android:layout_marginLeft="3dp"
        android:layout_marginRight="1dp" />

    <TextView
        android:id="@+id/song_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Title"
        android:textColor="#fcdb8c"
        android:background="@android:color/transparent"
        android:textStyle="normal"
        android:textSize="16sp"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/song_cover"
        android:layout_toRightOf="@+id/song_cover"
        android:lines="1"
        android:scrollHorizontally="true"
        android:ellipsize="end"
        android:paddingRight="40dp"
        android:paddingLeft="3dp" />

    <TextView
        android:id="@+id/song_duration"
        android:layout_width="40dp"
        android:layout_height="30dp"
        android:text="0:00"
        android:textColor="#ffffff"
        android:background="@android:color/transparent"
        android:textSize="11sp"
        android:layout_gravity="center_vertical"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:gravity="center_horizontal|top" />

    <TextView
        android:id="@+id/song_artist"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Artist"
        android:textColor="#ffffff"
        android:background="@android:color/transparent"
        android:textSize="14sp"
        android:layout_weight="0.67"
        android:layout_below="@+id/song_title"
        android:layout_toRightOf="@+id/song_cover"
        android:layout_toEndOf="@+id/song_cover"
        android:lines="1"
        android:scrollHorizontally="true"
        android:ellipsize="end"
        android:paddingRight="40dp"
        android:paddingLeft="3dp" />

</RelativeLayout>

将您的选择器属性更改为该属性,并按编辑的Que
android:state\u focused=“true”中的方式使用背景
android:state_activated=“true”

android:state_selected=“true”

使用此列表项单击:

    View rowView = view;
setItemSelected(rowView); //use this inside on item click

 public void setItemSelected(View view){
    View rowView = view;
    TextView tv = (TextView)rowView.findViewById(R.id.textView_two); // try your text view here
    tv.setTextColor(Color.WHITE);
}

您必须对每个不在ListView上的项目使用选择器尝试删除android:background=“@drawable/bg”_key@M.Wiśnicki我刚刚尝试过:我已经从列表视图中删除了android:background=“@drawable/bg_key”,然后我将其添加到@CoDfather removed中,但它不起作用。@M.Wiśnicki我已经按照您的建议编辑了上面的代码。