2016-04-15 1 views
3

У меня есть Spinner и используйте ArrayAdapter. В адаптере я использую «android.R.layout.simple_list_item_1», как это:Изменение цвета текста Android в Spinner

spinnerControlObjectType.setAdapter(new ArrayAdapter(getApplicationContext, android.R.layout.simple_list_item_1, list)) 

Я посмотрел в android.R.layout.simple_list_item_1 и посмотреть, она имеет стиль текста, как это:

android:textAppearance="?android:attr/textAppearanceListItemSmall"

Я хочу переписать «textAppearanceListItemSmall» в моей теме, чтобы дать ему другой цвет, как я могу это сделать? Я не хочу подклассифицировать что-либо или написать шаблон кода. Я уверен, что есть способ изменить цвет, только изменяя theme.xml.

В андроидных документах написано: «... В соответствии с атрибутом стиля, по существу, сказано:« используйте стиль, определенный этим атрибутом, в текущей теме. »... '(http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes). Они говорят «определены» и «в текущей теме» - как я могу определить это в моей текущей теме? Делает меня орехи ...

+1

Возможный дубликат [Как изменить размер текста и цвет текста прядильщика?] (Https://stackoverflow.com/questions/9476665/how-to-change-spinner-text-size-and-text-color) –

ответ

1

Я отвечаю на свой вопрос - все работает, как сказано в документации. Моя проблема заключалась в том, что я хотел использовать «android.R.layout.simple_list_item_1» в компоненте Spinner. Как только я использовал «android.R.layout.simple_spinner_item», он работал.

0

попробовать это,

 // Initializing an ArrayAdapter 
     final ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
       this,R.layout.spinner_item,plantsList){ 
      @Override 
      public View getDropDownView(int position, View convertView, 
             ViewGroup parent) { 
       View view = super.getDropDownView(position, convertView, parent); 
       TextView tv = (TextView) view; 

        // Set the Text color 
        tv.setTextColor(Color.parseColor("#FFC9A3FF")); 

       return view; 
      } 
     }; 
     spinnerArrayAdapter.setDropDownViewResource(R.layout.spinner_item); 
     spinner.setAdapter(spinnerArrayAdapter); 
+0

Я хочу изменить стиль в своей теме для изменения цвета. Это просто большая работа для простого изменения цвета. В любом случае, спасибо, Прадип! – tfh

5

Сделайте пользовательский файл XML для элемента вращателя

spinner_layout.xml

добавить заказной цвет

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/custom_spinner" 
    android:textSize="16sp" 
    android:text="HELLO" 
    android:padding="10dp" 
    android:textColor="@color/colorAccent" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" /> 

использовать это f Ile, чтобы показать ваши детали счетчика

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.spinner_layout,ar); 
     mSpinner.setAdapter(adapter); 
+1

Мне это известно. Но для меня неприемлемо добавить новый файл ресурсов xml только для изменения цвета. Я хочу изменить цвет, ТОЛЬКО меняя материал в теме theme.xml. Спасибо, в любом случае! – tfh

5

Вы просто должны переопределить этот атрибут в вашей теме, в этом примере я использую AppCompat тему, как родитель, но вы можете изменить это в любую другую тему. В зависимости от того, что вы хотите, вы должны сделать темы и стили ресурсов для различных версий Android:

<style name="MyTheme" parent="Theme.AppCompat.Light"> 
    <item name="android:textAppearanceListItemSmall">@style/MySpinnerStyle</item> 
</style> 

<style name="MySpinnerStyle" parent="TextAppearance.AppCompat.Subhead"> 
    <item name="android:textSize">13sp</item> 
    <item name="android:textColor">@color/white</item> 
</style> 
+0

Это именно то, что я ищу - у меня в основном это в моем коде, но он просто не работает. Но я снова сравню свой с твоей секундой. – tfh

+0

Возможно, вы должны включить стиль в свой исходный вопрос, возможно, это что-то простое, что неправильно с вашим xml. – oiZo

 Смежные вопросы

  • Нет связанных вопросов^_^