android персонализиран спинер. избран елемент в син цвят

Използвам персонализиран спинер. Той е почти подобен на стандартния, с изключение на това, че трябва да задам подложка отляво на всеки елемент (в падащото меню подложка във всеки ред преди текст). Аз съм в състояние да направя това. Но също така искам да покажа избрания елемент в различен цвят, когато списък със стойности се показва на потребителя като падащо меню.

Използвал съм текстов изглед като падащ елемент.

Може ли някой да предложи, ако може да се направи. Изморих се да постигна това с xml, но не можах да намеря никаква опция.

Благодаря предварително.

РЕДАКТИРАНЕ: Текст на избрания елемент в син цвят.


person user2702700    schedule 12.10.2013    source източник


Отговори (3)


Можете да посочите android:dropDownSelector="@color/spinner_selector" за spinner елемент и да дефинирате spinner_selector цвят на #800000FF, например.

Вижте http://developer.android.com/reference/android/widget/Spinner.html#attr_android:dropDownSelector

person aleb    schedule 27.11.2013

Можете да го направите чрез следния код.

Просто приложете стил към вашия текстов изглед като фон.



// TextStyle е xml файл, който съдържа следния код.

<item android:state_selected="false"
    android:drawable="@android:color/white" />

<item android:state_selected="true"
    android:drawable="android:drawable="@android:color/blue"" />

person Vickyexpert    schedule 12.10.2013

Трябва да промените цвета на текстовия изглед по време на изпълнение, като използвате метода на spinner setOnItemSelectedListener. Например,

  spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            TextView tv = (TextView) view.findViewById(R.id.tv );
            tv.setTextColor(R.color.green);
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
person Vishal Vaishnav    schedule 01.06.2017