Изменение цвета текста выбранного элемента в прядильщике

Как изменить цвет шрифта выбранного элемента в прядильщике?

Я могу изменить цвет фона выбранного элемента, цвет выпадающего элемента и т. Д., Но не цвет текста выбранного элемента … как я могу это сделать?

Мой код: это spinner, я использую::

<Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="32dip" android:background="@drawable/mybg" android:divider="@drawable/list_divider" android:drawSelectorOnTop="true" android:popupBackground="#D3D5D3" android:prompt="@string/activityy_prompt" /> 

Это mybg.xml

 <!-- <item android:drawable="@drawable/blue" android:state_pressed="false"/> --> <!-- <item android:drawable="@drawable/back11"/> --> <item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="false"/> <item android:drawable="@drawable/greenyellow1" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/greenyellow1" android:state_focused="false" android:state_pressed="true"/> <item android:drawable="@drawable/greenyellow1" android:state_selected="true"/> <item android:drawable="@drawable/back11"/> 

Используя эти, я не могу изменить цвет текста элемента selecetd …

Solutions Collecting From Web of "Изменение цвета текста выбранного элемента в прядильщике"

  <item android:state_activated="true" android:color="@color/red"/> 

Это изменит выбранный цвет элемента во всплывающем окне.

Просто используйте эту строку кода в своем элементе

 public void onItemSelected(AdapterView<?> parent, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub item = (String) parent.getItemAtPosition(arg2); ((TextView) parent.getChildAt(0)).setTextColor(0x00000000); } 

Используя селектор как цвет текста.

Создайте color_selector.xml в drawable like

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#000000" /> <!-- pressed --> <item android:state_focused="true" android:color="#000000" /> <!-- focused --> <item android:color="#FFFFFF" /> <!-- default --> </selector> 

И в текстовом виде

 <TextView ........... android:textColor=""@drawable/color_selector"/> 

Попробуйте реализовать onItemSelected в вашем OnItemSelectedListener для изменения цвета текста выбранного элемента

 public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { int index = adapterView.getSelectedItemPosition(); ((TextView) spinner.getSelectedView()).setTextColor(getResources().getColor(R.color.Blue)); //<---- 

Просто используйте эту строку onItemSelected listner –

 public void onItemSelected(AdapterView<?> parent, View arg1, int arg2,long arg3) { item = (String) parent.getItemAtPosition(arg2); ((TextView) parent.getChildAt(0)).setTextColor(0x00000000); } 

Вы можете изменить выбранный цвет текста, добавив OnItemSelectedListener в spinner

 qtySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ((TextView) view).setTextColor(Color.BLACK); //Change selected text color } @Override public void onNothingSelected(AdapterView<?> parent) { } }); 

См. Мой ответ на аналогичный вопрос здесь . Мой ответ похож на Priya's, за исключением того, что он правильно устанавливает цвет текста по умолчанию выбранного элемента (так что нет задержки с неправильным цветом, ожидая, пока счетчик автоматически выберет элемент по умолчанию, который возникает после того, как пользовательский интерфейс уже включен, экран).

Если ваш счетчик использует ArrayAdapter, вы можете просто передать собственный макет для своих элементов-счетчиков. Этот макет может быть простым textView, но с атрибутом android: textColor.

MainActivity.java onCreate ()

 adapter = new ArrayAdapter<>(this, R.layout.spinner_custom_textcolor, data); spinner.setAdapter(adapter); 

spinner_custom_textcolor.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerItemStyle" android:textColor="@color/YOUR_COLOR_HERE" android:singleLine="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:textAlignment="inherit"/> 

* Все, что указано выше, кроме android: textColor – это прямая копия с android.R.layout.simple_spinner_item

Вам не нужен код java для изменения цвета фона в Android 2.3v. Просто добавьте android:background="#F0F8FF" к вашему spinner в xml-файле.

Некоторые из вас, использующие MaterialBetterSpinner и привязывающие ваши макеты, все это не поможет, попробуйте это, надеюсь, что это поможет вам:

 public class MyAdapter extends ArrayAdapter<String> { public MyAdapter(Context context, int textViewResourceId, List<String> objects) { super(context, textViewResourceId, objects); } @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { return getCustomView(position, convertView, parent); } @Override public View getView(int position, View convertView, ViewGroup parent) { return getCustomView(position, convertView, parent); } public View getCustomView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); final YourXMLBinding rowBinding = DataBindingUtil.inflate(inflater, R.layout.yourXML, parent,false); rowBinding.tv1.setText(mMy.getValues().get(position)); if(position == mMy.getCurrentIndex()) { rowBinding.tv1.setTypeface(Typer.set(getContext()).getFont(Font.ROBOTO_BOLD));//change font rowBinding.tv1.setTextColor(ContextCompat.getColor(getContext(), R.color.yourColor));//change color } return rowBinding.getRoot(); } } 

YourXML – это примерно так:

 <?xml version="1.0" encoding="utf-8"?> <layout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="@color/colorBackgroundStart"> <TextView android:id="@+id/tv1" android:layout_width="0dp" android:layout_weight="0.7" android:layout_height="30dp" android:textColor="#fff" android:textSize="16dp" android:layout_marginTop="8dp" android:layout_marginBottom="10dp" android:layout_marginLeft="8dp"/> </layout> 

Создайте счетчик с этим адаптером и вашим XML:

 final MyAdapter adapter = new MyAdapter(getContext(), R.layout.yourXML, s.getValues()); final MaterialBetterSpinner spinner = new MaterialBetterSpinner(getContext()); spinner.setAdapter(adapter);