Pertanyaan Cara mengatur warna baris DaftarView alternatif dan warna latar belakang item yang dipilih


Saya memiliki satu tampilan daftar. Saya telah menetapkan warna baris alternatif seperti di bawah ini dalam metode getView () adaptor:

if(position % 2 ==1)
{
convertView.setBackgroundColor(Color.rgb(231, 249, 255));
}
else
{
convertView.setBackgroundColor(Color.rgb(195, 240, 255)); 
}

Kode di atas berfungsi baik. Sekarang saya ingin mengubah warna item daftar yang dipilih. Untuk itu saya telah mengikuti prosedur di bawah ini:

Saya telah membuat di listSelector xml seperti di bawah ini:

<?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>

dan saya telah menetapkan pemilih di atas ke daftar saya seperti di bawah ini:

myList.setSelector(R.drawable.list_selector);

Tapi saya tidak mendapatkan warna daftar item yang dipilih.

Adakah yang bisa memberitahu saya bagaimana mengatur warna baris alternatif dan warna daftar pilihan ke daftar android.


5
2017-10-27 08:19


asal


Jawaban:


Coba seperti ini

artists_list_backgroundcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item 
 android:state_selected="false"
    android:state_pressed="false" 
    android:drawable="@color/normal" />
<item android:state_pressed="true" 
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false" 
    android:drawable="@color/itemselected" />
</selector> 

colors.xml

<resources>

    <color name="normal">#ffffff</color>
    <color name="itemselected">#EDEDED</color>

</resources>

Dan menggunakannya di getView ()

if (position % 2 == 0) {
        view.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
    } else {
        view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE);
    }

Sebagai referensi Link

Semoga ini akan membantu Anda.


3
2017-10-27 08:36