我有一个editText,当前显示错误弹出窗口。
editText.setError("你做错了什么");
现在我需要一个工作流程,当用户点击其他地方的按钮时,我需要在editText上设置错误。但是现在,只显示一个错误图标。
我的问题是,是否有可能让它显示整个错误文本而用户实际上没有点击(聚焦)它?
答案 0 :(得分:3)
解决方案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
自定义视图,由您决定。
答案 1 :(得分:1)
我使用那个库MaterialEditText,这使得一切变得更加简单...... wiki page中的所有内容都得到了很好的解释。
帮助文字和错误文字
帮助文字:
app:met_helperText="Integer"
错误文字:
在java代码中使用原始setError(CharSequence错误)。
正则表达式检查:
validationEditText.isValid("\\d+");
正则表达式验证错误文本设置:
validationEditText.validate("\\d+", "Only Integer Valid!");