只有当第一个非空的android时才专注于第二个edittext

Han*_*nry 4 validation android onfocus android-edittext

目前我有两个编辑文本,假设我想对空的edittext检查进行验证.什么是运行时验证的更好方法.

我的代码是;

    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();
    }
    }
});
Run Code Online (Sandbox Code Playgroud)

在第二个editText的onclick中,当First Edittext为空时,它会清除第二个EditText的焦点,但键盘输入总是在第二个文本中完成,我们永远无法在第一个文本中获得焦点.

请不要为不同的EditText建议不同的焦点监听器,因为这个editText也可以动态添加.

专注于两个文本!!!!

更清楚:在失去焦点之前验证ev1很简单,不允许其他视图获得焦点,直到输入任何字符.

Chi*_*iya 9

    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);

         }
      }
    });
Run Code Online (Sandbox Code Playgroud)