2015-07-21 3 views
1
public static void setNumberPickerTextColor(Context context,NumberPicker numberPicker, int color){ 
     final int count = numberPicker.getChildCount(); 
     for(int i = 0; i < count; i++){ 
      View child = numberPicker.getChildAt(i); 
      if(child instanceof EditText){ 
       try{ 
        Field selectorWheelPaintField = numberPicker.getClass().getDeclaredField("mSelectorWheelPaint"); 
        selectorWheelPaintField.setAccessible(true); 
        ((Paint)selectorWheelPaintField.get(numberPicker)).setColor(color); 
        numberPicker.invalidate(); 
        ((EditText)child).setTextColor(color); 

       }catch(Exception e){ 
        e.printStackTrace(); 
       } 

      } 
     } 
    } 

Приведенный выше код изменения цвета всех вариантов. Но я хочу, чтобы изменить только выбранным параметром цветаКак изменить цвет выбранного варианта номер сборщика в андроида

Заранее спасибо !!!!

ответ

0

Вы используете цикл for для всех параметров, чтобы изменить цвет всех параметров.

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

View child = numberPicker.getChildAt(numberPicker.getValue()); 
//change the color of this child to the new color 
+0

Благодаря Henri но не работает –

+0

Пожалуйста просмотра HTTP://stackoverflow.com/questions/26887425/how-to-change-number-picker-center-text-color-in-android Это мое точное требование. –

+0

Я не уверен, что numberPickers ведут себя как прядильщики, где выбранный ребенок является дочерним на 0. Вы можете попробовать код ссылки, которую вы дали с помощью getChildAt (newVal), а не getChildAt (0) (параметры newVal и oldVal Функция OnValueChange дает позицию выбранного элемента и позицию элемента, который был выбран до этого) –

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