2015-11-11 2 views
2

Я хочу, чтобы значения в наборе чисел были белыми. Я сделал следующий код, который сделал его по умолчанию черным.android Number picker text color

код XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@layout/gradient_blue" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:orientation="vertical"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="10dp" 
     android:textSize="25sp" 
     android:textColor="#fff" 
     android:textStyle="bold" 
     android:text="Please select difficulty level"/> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:background="@drawable/category_seperator"/> 

    <LinearLayout 
     android:padding="10dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="horizontal"> 

     <NumberPicker 
      android:id="@+id/numberPicker1" 
      android:layout_width="wrap_content" 
      android:minWidth="100dp" 
      android:layout_margin="10dp" 

      android:layout_height="wrap_content"/> 
      <!--#019687--> 
     <Button 
      android:background="#019687" 

      android:id="@+id/setting_confirm" 
      android:layout_width="wrap_content" 
      android:layout_margin="10dp" 
      android:layout_height="wrap_content" 
      android:textSize="30sp" 
      android:textColor="#fff" 
      android:padding="15dp" 
      android:text="OK"/> 


    </LinearLayout> 

</LinearLayout> 

Javacode:

final Dialog d = new Dialog(context); 
d.requestWindowFeature(Window.FEATURE_NO_TITLE); 

d.setContentView(R.layout.dialog_settings); 

final NumberPicker n = (NumberPicker) d.findViewById(R.id.numberPicker1); 

String easy = Html.fromHtml("<font color=\"white\">EASY</font>").toString(); 
String medium = Html.fromHtml("<font color=\"white\">MEDIUM</font>")+""; 
String hard = Html.fromHtml("<font color=\"white\">HARD</font>")+""; 
String tough = Html.fromHtml("<font color=\"white\">TOUGH</font>")+""; 

//  String[] a = {"EASY", "MEDIUM", "HARD", "TOUGH"}; 
String [ ] a = {easy,medium,hard,tough}; 
n.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS); 
n.setDisplayedValues(a); 


n.setMaxValue(3); 
n.setMinValue(0); 
n.setWrapSelectorWheel(true); 

d.show(); 

Я попытался изменить цвет, используя HTML как показано в коде. Я также попытался изменить цвет с помощью getChildAt и отбросить его в TextView, который разбил приложение.

Number picker text colour

+1

Вы видели это? http://stackoverflow.com/questions/22962075/change-the-text-color-of-numberpicker –

+0

Можете ли вы опубликовать свои журналы сбоев, потому что я использую этот точно такой же метод, и он работает. –

+0

Он не разбился на самом деле запутался с какой-то другой ответ но ни работал для меня завершает блок-шоу Попробуй войти непосредственно перед обратным утверждением пока цвет оленья кожа, кажется, изменить используется метод, как _setNumberPickerTextColor (п, R. color.white); _ –

ответ

3

Согласно нашей дискуссии в комментариях, код here, требует параметра из Color класса. Передайте цвет, используя этот класс.

1

Просто использовать в style.xml файле textColorPrimary atribute:

<style name="Theme.MyTheme" parent="@android:style/Theme.Holo.NoActionBar.Fullscreen" > 
    <item name="android:textColorPrimary">#FFFFFF</item> 

1

скопирована: Change the text color of NumberPicker

Параметр цвет должен быть от Color класса, например, Color.WHITE

import java.lang.reflect.Field; 

public static boolean setNumberPickerTextColor(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); 
       ((EditText)child).setTextColor(color); 
       numberPicker.invalidate(); 
       return true; 
      } 
      catch(NoSuchFieldException e){ 
       Log.w("setNumberPickerTextColor", e); 
      } 
      catch(IllegalAccessException e){ 
       Log.w("setNumberPickerTextColor", e); 
      } 
      catch(IllegalArgumentException e){ 
       Log.w("setNumberPickerTextColor", e); 
      } 
     } 
    } 
    return false; 
}