如何在android中编写EditText错误文本的样式?


Answers

我不认为你可以自定义它的样式,因为错误弹出使用内部样式

mPopupInlineErrorBackgroundId = getResourceId(mPopupInlineErrorBackgroundId,
                    com.android.internal.R.styleable.Theme_errorMessageBackground);
mView.setBackgroundResource(mPopupInlineErrorBackgroundId);

但是,您可以使用重载的setError(CharSequence, Drawable)设置Spanned和自定义错误图标。

您可以使用fromHtml()轻松地从HTML创建Spanned fromHtml()

但是,您仍然无法设置弹出背景图像:-(

Question

我正在尝试为我的Android应用程序编写新的自定义样式。 我需要为在EditText设置setError后出现的errorText提供样式。

我该如何定制它的风格?

例如:我想在style.xml中将其background设置为白色,将textColor :Blue等设置为等




我已经看到了接受的答案,但我不喜欢提议的库

我认为这是Android框架中的一个错误,我在此处提交了一个错误: https://code.google.com/p/android/issues/detail?id=158590https://code.google.com/p/android/issues/detail?id=158590

编辑:android设计库TextInputLayout小部件可用于在EditText上获得更好的错误处理。

看看它在这里的样子: https://www.youtube.com/watch?v=YnQHb0fNtF8https://www.youtube.com/watch?v=YnQHb0fNtF8

以及如何实现: http://code.tutsplus.com/tutorials/creating-a-login-screen-using-textinputlayout--cms-24168http://code.tutsplus.com/tutorials/creating-a-login-screen-using-textinputlayout--cms-24168




这很好用!

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
}



Related