2014-02-10 78 views
6

正如問題所述:在運行Android 4.3+(也在4.4測試過)的設備上測試應用程序時,提示的顏色(對於EditText )變成白色,不管我設置了什麼顏色,它仍然是白色的。由於EditText的背景是白色的,肉眼看不到提示!Android 4.3+,android:textColorHint不起作用,提示顏色始終爲白色

我已經使用Google搜索並找不到任何人有相同的問題。該應用程序使用android:minSdkVersion="8"android:targetSdkVersion="15"構建。該EditText上看起來是這樣的:

<EditText 
      android:id="@+id/editText3" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@drawable/my_background" 
      android:ems="10" 
      android:textColorHint="@color/BlueViolet" 
      android:hint="@string/my_hint" 
      android:inputType="number" 
      android:tag="21_0" /> 

起初人們使用默認android:textColorHint,我想,也許安卓4.3+更改默認白色出於某種原因。但是,這似乎並不是這種情況,因爲無論我將它設置爲什麼顏色,它總是白色的。

我知道fill_parent已被棄用,但該應用程序是在一段時間之前構建的,但現在由於提示消失而無法使用。任何幫助表示讚賞!謝謝!

編輯: 當使用字符串資源提示時,'錯誤'似乎發生。這工作:android:hint="Hello world"雖然這並不android:hint="@string/my_hint"

回答

1

似乎由於Android 4.3以上版本的它已經不再可能使字符串資源如下(不知道是否有人曾經打算工作,雖然這種方式):

<string name="my_hint"><font size="13" fgcolor="#ffbbbbbb">Hello world</font></string> 

如果你這樣做,他們會變成白色。所以,你被卡住創建字符串資源是這樣的:

<string name="my_hint">Hello world</string> 

然後使用上的TextView/EditText上的屬性編輯提示的顏色。要更改大小,現在看來,這仍然可以做到:

<string name="my_hint"><small><small>Hello world</small></small></string> 

我發現了這一點,通過閱讀這個答案的評論:https://stackoverflow.com/a/11577658/2422321,由愛德華·福爾克

9

對於誰與同樣的問題鬥爭;

如果你用你的EditText在

android.support.design.widget.TextInputLayout 

你應該把你在TextInputLayout

android:textColorHint="@color/BlueViolet" 

<android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textColorHint="@android:color/white"> 

       <AutoCompleteTextView 
        android:id="@id/etextEmail" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/prompt_card" 
        android:inputType="textEmailAddress" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:textColor="@android:color/white"/> 

      </android.support.design.widget.TextInputLayout>