目前我有两个编辑文本,假设我想对空编辑文本检查进行验证。运行时验证的更好方法是什么。
我的代码是;
final EditText ev1 = (EditText) findViewById(R.id.editText1);
final EditText ev2 = (EditText) findViewById(R.id.editText2);
ev1.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View rv, boolean hasFocus) {
if(!hasFocus && ev1.getText().length()==0)
{
ev1.requestFocus();
ev2.clearFocus();
}
}
});
在第二个编辑文本的单击中,当第一个编辑文本为空时,它会清除第二个编辑文本的焦点,但键盘输入始终在第二个文本中完成,并且我们永远无法在第一个文本中获得焦点。
请不要为不同的 EditText 建议不同的焦点侦听器,因为此 editText 也可能会动态添加。
![Having Focus in Both Text!!!!](https://i.stack.imgur.com/QxwCj.png)
更清楚:在失去焦点之前验证 ev1 是很简单的事情,在输入任何字符之前不允许其他视图获得焦点。
final EditText ev1 = (EditText) findViewById(R.id.editText1);
final EditText ev2 = (EditText) findViewById(R.id.editText2);
ev1.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View rv, boolean hasFocus) {
if(!hasFocus && ev1.getText().length()==0)
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
ev2.clearFocus();
ev1.requestFocus();
}
}, 100);
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)