当用户不关注EditText时显示EditText错误



我有一个editText,它当前显示一个错误popover。

editText.setError("您做错了什么");

现在我需要一个工作流,这样,当用户单击其他地方的按钮时,我需要在editText上设置一个错误。但现在,只显示一个错误图标。

我的问题是,是否可以让它显示整个错误文本,而不需要用户真正点击(聚焦)它?

解决方案1

呼叫

editText.requestFocus()

在设置错误之前。

解决方案2

使用TextInputLayout。

<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.TextInputLayout>

并且在代码中

textInputLayout.setError("Error");

解决方案3

自定义视图,由您决定。

我使用库MaterialEditText,它使一切变得更加简单。。。维基页面上对一切都做了很好的解释。

帮助程序文本和错误文本

助手文本:

app:met_helperText="Integer"

错误文本:

只需在java代码中使用原始的setError(CharSequence错误)

正则表达式检查:

validationEditText.isValid("\d+");

regex验证错误文本设置:

validationEditText.validate("\d+", "Only Integer Valid!");

最新更新