2014-10-27 2 views
1

Я хочу показать выпадающий список элементов Spinner в другом цвете по сравнению с выбранным элементом, который отображается, когда раскрывающийся список Spinner закрыт, как я должен отредактируйте мой адаптер-сплиттер, чтобы решить эту проблему?Как использовать цвет и размер текста для закрытого и открытого раскрывающегося списка в Spinner

public class MySpinner extends ArrayAdapter<String> { 
    private String[] options; 

    private String mCustomText = ""; 

    public MySpinner(Context context, String options[]) { 
     super(context, R.layout.spinner_item, options); 
     this.options = options; 
    } 

    public MySpinner(Context context, String options[], int resID) { 
     super(context, resID); 
     this.options = options; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 
     int specialItemIndex = options.length - 1; 
     return view; 
    } 

    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     return super.getDropDownView(position, convertView, parent); 
    } 
} 

enter image description here

Другими словами, мне нужно просто что цвет текста и размер элемента обведены красным цветом отличаются от элементов в списке обведены синим ... на самом деле, используя R.layout.spinner_item оба имеют тот же размер текста и цвет, используемые в этом макете

+0

Итак, вы хотите, чтобы ваш выбранный элемент изменил цвет, и вы хотите, чтобы цвет заголовка Spinner изменился на тот цвет, когда Spinner закрыт? – joao2fast4u

+0

Вы хотите, чтобы цвет всегда был одинаковым? – joao2fast4u

+0

Посмотрите на картинку, мне просто нужно, чтобы текст и размер элемента, обведенного красным цветом, отличались от элементов в выпадающем списке, обведенных синим цветом ... на самом деле использование 'R.layout.spinner_item' имеет одинаковый размер текста и цвет – AndreaF

ответ

0

Возможно, цвет текста заголовка Spinner установлен на синий (например), в то время как элементы Spinner имеют цвет по умолчанию. Просто примените его в обратном вызове onItemSelected(). Как это:

spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> adapterView, View view, int position, long itemId) { 
        ((TextView)view).setTextColor(Color.BLUE); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { } 
     }); 

Убедитесь, что ваш Spinner пункт View является TextView, так что вы можете изменить цвет текста.

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