focus on second edittext only if first is non-empty android

后端 未结 3 706
别跟我提以往
别跟我提以往 2021-01-13 14:10

Currently I have two edit-text,suppose I want to make validation for empty edittext check.What is better way for runtime validation.

My code is;

             


        
相关标签:
3条回答
  • 2021-01-13 14:53

    I have taken on xml having two textboxes and tried this way to solve your issue.

    check the below code and tell me is it ok for you?

        setContentView(R.layout.activity_main);
        final EditText password = (EditText)findViewById(R.id.editText1);
        final EditText confirmpassword = (EditText)findViewById(R.id.editText2);
    
        password.addTextChangedListener(new TextWatcher() {
    
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(password.getText().toString().trim().length()==0)
                {
                    confirmpassword.setText("");
                }
            }
    
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
            }
    
            public void afterTextChanged(Editable s) {
            }
        });
        confirmpassword.setOnFocusChangeListener(new OnFocusChangeListener() {
    
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus && password.getText().toString().trim().length()==0)
                {
                    // First fill password
                    password.requestFocus();
                }
            }
        });
    
    0 讨论(0)
  • 2021-01-13 14:57
        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);
    
             }
          }
        });
    
    0 讨论(0)
  • 2021-01-13 15:02

    Try this :

    EDIT :

            final EditText ev1,ev2,ev3,ev4,ev5,ev6;
    
            ev1 = (EditText) findViewById(R.id.editText1);
            ev2 = (EditText) findViewById(R.id.editText2);
            ev3 = (EditText) findViewById(R.id.editText3);
            ev4 = (EditText) findViewById(R.id.editText4);
            ev5 = (EditText) findViewById(R.id.editText5);
            ev6 = (EditText) findViewById(R.id.editText6);
    
            setValidateAction(ev2);
            setValidateAction(ev3);
            setValidateAction(ev4);
            setValidateAction(ev5);
            setValidateAction(ev6);
    

    Declare this method :

    public void setValidateAction(final EditText edit_action) {
            edit_action.setOnFocusChangeListener(new OnFocusChangeListener() {
                public void onFocusChange(View v, boolean hasFocus) {
                    if(hasFocus && ev1.getText().length()==0){    
                        ev1.requestFocus();               
                    }
                }
            });
    }            
    

    Thanks.

    0 讨论(0)
提交回复
热议问题