Nic*_*ick 36 android android-edittext
目前我有一个非常简单的代码来验证EditText
字段,当用户点击按钮时,它会检查它们.它将在所有字段中放入错误:
if (!emailmatcher.matches()) {
email.setError("Invalid Email");
}
if (!zipmatcher.matches()) {
zipcode.setError("Invalid ZipCode");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是键盘会弹出并将错误气泡移动到一个随机的位置.我希望没有错误气泡与消息,但将错误图标保留在无效EditText
字段中.我尝试输入,setError(null)
但这不起作用.有任何想法吗?
Tof*_*mad 57
您的代码非常适合仅显示图标.
正如EditText
显示任何与其聚焦时间相关的内容.所以只需将代码更改为...
if (!emailmatcher.matches()) {
email.requestFocus();
email.setError("Invalid Email");
}
if (!zipmatcher.matches()) {
zipcode.requestFocus();
zipcode.setError("Invalid ZipCode");
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用
setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.my_error_icon, 0);
将错误图标设置在文本输入的右侧.您可能还需要注册
View.OnKeyListener
重置用户输入的错误图标:
EditText myEdit = (EditText)findViewById(R.id.my_edit);
if (TextUtils.isEmpty(myEdit.getText().toString())) {
// set the warning
myEdit.requestFocus();
// show error icon
myEdit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.error_sign, 0);
// remove the error icon on key press
myEdit.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
EditText eText = (EditText)v;
// remove error sign
eText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
// remove this key handler
eText.setOnKeyListener(null);
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19447 次 |
最近记录: |