Установка цвета фона для Spinner Item на выбор - PullRequest
6 голосов
/ 28 сентября 2011

Я использую Spinner в своем коде.Я хочу, чтобы элемент выделялся (т. Е. Цвет фона изменялся для этого элемента) при выделении.Как этого достичь?

Ответы [ 2 ]

9 голосов
/ 28 сентября 2011

создать xml: для примера: mybg.xml

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

и в вашей деятельности xml

сделать

  <Spinner...............
  android:drawSelectorOnTop="true"
  android:background="@drawable/mybg"/>  
2 голосов
/ 28 сентября 2011
  1. Создание пользовательского макета представления (например, из TextView)
  2. Создание селектора и установка его в качестве фона этого представления
  3. Установка Spinner с настраиваемым представлением

Селектор: custom_selector.xml

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

Настраиваемый макет представления: my_simple_item

<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="1"
android:padding="5dip"
android:background="@drawable/custom_selector"/>

Инициализация Spinner:

String[] items = new String[] {"One", "Two", "Three"};
Spinner spinner = (Spinner) findViewById(R.id.mySpinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_simple_item, items);

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...