In Android, how to make Login button disable with respect to EditText?

前端 未结 9 2179
猫巷女王i
猫巷女王i 2020-12-28 09:50

If EditText is empty then Login Button has to be disabled. And if EditText has some texts then Login Button has to be ena

相关标签:
9条回答
  • 2020-12-28 10:29

    You need to track user's action inside EditText using TextWatcher object:

    myEditText.addTextChangedListener(new TextWatcher()
            {
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count)
                {
    
                }
    
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after)
                {
    
                }
    
                @Override
                public void afterTextChanged(Editable s)
                {
                    if (s.length() > 1)
                    {
                        //enable button
                    } else
                        //disable
                }
            });
    
    0 讨论(0)
  • 2020-12-28 10:30

    heres what you are looking for :

    private EditText et1,et2;
    //  create a textWatcher member
    private TextWatcher mTextWatcher = new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
        }
    
        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
        }
    
        @Override
        public void afterTextChanged(Editable editable) {
            // check Fields For Empty Values
            checkFieldsForEmptyValues();
        }
    };
    
    void checkFieldsForEmptyValues(){
        Button b = (Button) findViewById(R.id.button1);
    
        String s1 = et1.getText().toString();
        String s2 = et2.getText().toString();
    
        if(s1.equals("")|| s2.equals("")){
            b.setEnabled(false);
        } else {
            b.setEnabled(true);
        }
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_check);
        et1 = (EditText) findViewById(R.id.editText1);
        et2 = (EditText) findViewById(R.id.editText2);
    
    
        // set listeners
        et1.addTextChangedListener(mTextWatcher);
        et2.addTextChangedListener(mTextWatcher);
    
        // run once to disable if empty
        checkFieldsForEmptyValues(); 
    }
    
    0 讨论(0)
  • 2020-12-28 10:34

    hey if want to use the code cut the button needs to change color if the editText1_id and the editText1_passcode is in and in 4 digits

    checkValidation();
    
        editText1_id.addTextChangedListener(mWatcher);
        editText1_passcode.addTextChangedListener(mWatcher);
    }
    
    private void checkValidation() {
        // TODO Auto-generated method stub
    
        if ((TextUtils.isEmpty(editText1_id.getText()))
                || (TextUtils.isEmpty(editText1_passcode.getText())))
            loginbtn.setEnabled(false);
        else
            loginbtn.setEnabled(true);
    
    }
    
    
    TextWatcher mWatcher = new TextWatcher() {
    
        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                                  int count) {
            // TODO Auto-generated method stub
            checkValidation();
        }
    
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                                      int after) {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
    
        }
    };
    
    }
    
    0 讨论(0)
提交回复
热议问题