2011-07-19 41 views
21

在我的表單中,我在EditText字段上使用setError("")。我的應用程序主題擴展爲android:Theme.Holo
我手動設置了暗色背景的圖像android:errorMessageBackgroundandroid:errorMessageBackgroundAbove哪個主題屬性更改EditText錯誤消息的文本顏色

現在問題在於:錯誤消息的文本顏色也很暗,不可讀。

我嘗試在我的主題中更改不同的textColor屬性,但我無法找到正確的屬性。

任何人都可以幫助我嗎? 謝謝! 克里斯

+6

好的,我找到了一個解決方案。實際上我找不到具體的主題屬性,需要擴展。 但是可以將#ffffffff設置爲nedded的顏色。這對我來說是訣竅。 這不會與我的應用程序中的其他顏色相碰撞,因爲我爲每種元素設置了自己樣式集的文本顏色。 希望這會有所幫助。 – Chris

+0

將此添加爲您自己問題的答案。 – Macarse

+1

你能告訴我你是如何使用errorMessageBackground設置背景的? 我已經將minSDK設置爲7,目標爲16,我不能在我的主題中使用此屬性,但我得到的是:錯誤:錯誤:找不到與給定名稱匹配的資源:attr'errorMessageBackground' 。 我對此的問題:http://stackoverflow.com/questions/14127710/change-color-of-edittexts-error-message?lq=1 – scana

回答

0

做以下的manifest.xml中

<resources> 
    <style name="LightErrorFix" parent="@android:style/Theme.Light"> 
     <item name="android:textColorSecondaryInverse">@android:color/secondary_text_light</item> 
    </style> 
</resources> 
0

設置屬性 android:textColorPrimaryInverse="YourCOLOR"到nedded顏色。

0

假設你這樣做了某事:

EditText text = (EditText) findViewById(R.id.myedittext); 

,你可以做到以下幾點:

text.setTextColor(Color.parseColor("#FFFFFF")); 

text.setTextColor(Color.rgb(200,0,0)); 

或者如果你想/需要一個lpha:

text.setTextColor(Color.argb(0,200,0,0)); 

總之,你應該在你的color.xml指定顏色(wayyy更好地維持):

<color name="myColor">#f00</color> 

,然後用它是這樣的:

text.setTextColor(getResources().getColor(R.color.myColor)); 

玩得開心:)

+1

這不會改變EditText的顏色而不是錯誤彈出嗎? –

+0

這不會更改錯誤消息的顏色 – commonSenseCode

1

你可以試試這個:

editText.setError(Html.fromHtml("<font color='red'>Error Message!</font>")); 
0

我的迴應是有效的,是在kotlin。

private fun setErrorOnSearchView(searchView: SearchView, errorMessage: String) { 
    val id = searchView.context 
      .resources 
      .getIdentifier("android:id/search_src_text", null, null) 
    val editText = searchView.find<EditText>(id) 

    val errorColor = ContextCompat.getColor(this,R.color.red) 
    val fgcspan = ForegroundColorSpan(errorColor) 
    val builder = SpannableStringBuilder(errorMessage) 
    builder.setSpan(fgcspan, 0, errorMessage.length, 0) 
    editText.error = builder 
} 
相關問題