我有一个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!");