2015-11-11 142 views
2

我希望號碼選取器中的值爲白色。 我做了下面的代碼,使其默認爲黑色。android號碼選擇器文本顏色

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

它沒有應聲實際上混淆了與其他一些答案 但也爲我工作 完成try塊正好顯示了return語句之前登錄尚未顏色不列入似乎改變 使用的方法 _setNumberPickerTextColor(N,R。 color.white); _ –

回答

3

根據我們的意見的討論,代碼here,需要從Color類的參數。使用這個類傳遞一個顏色。

1

在style.xml文件textColorPrimary只需使用屬性附加傷害:

<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; 
}