在我的EditText被赋值后,如何启用我的按钮?即使我已经提交了我的EditText,我的按钮也会保持禁用状态

时间:2016-07-29 06:55:55

标签: android button editbox

这是我的代码希望它足够清楚 使用此代码我尝试使用isEnabled函数来检查我的EditText字段是否具有值,如果它们没有值,则必须禁用提交按钮,否则如果它们都具有按钮必须启用的值,则用户可以导航到新的活性

public class RegisterAccountActivity extends AppCompatActivity {

    //Declaring Button and EditText
    private Button submit;
    private EditText name;
    private EditText surname;
    private EditText email;
    private EditText phoneNumber;
    private EditText address;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register_account);

        submit = (Button) findViewById(R.id.btnSubmitPersonalDetails);
        name = (EditText)findViewById(R.id.edtName);
        surname = (EditText)findViewById(R.id.edtSurname);
        email = (EditText)findViewById(R.id.edtEmail);
        phoneNumber = (EditText)findViewById(R.id.edtPhoneNumber);
        address = (EditText)[findViewById][1](R.id.edtPostalAddress);

        //Calling the checking fields method
        checkFields();

    }

    //Function to disable button if fields doesn't have value
    public void checkFields() {

       //Here i am checking if EditText have values
        if (!submit.getText().toString().isEmpty() &&
                !name.getText().toString().isEmpty() &&
                !surname.getText().toString().isEmpty() &&
                !email.getText().toString().isEmpty() &&
                !phoneNumber.getText().toString().isEmpty() &&
                !address.getText().toString().isEmpty()) {

            submit.setEnabled(true);
        } else {
            submit.setEnabled(false);
        }

    }

[查找表格附件]

enter image description here

5 个答案:

答案 0 :(得分:0)

一个EditText的启动示例:

name.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            }

            @Override
            public void afterTextChanged(Editable editable) {
                checkFields();
            }
        });

将TextWatcher分配给每个EditText

答案 1 :(得分:0)

addTextChangedListener(new TextWatcher() { 
    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count)
    { 
     //set your condition here 
    }
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
    @Override 
    public void afterTextChanged(Editable s) {

    }  });

答案 2 :(得分:0)

使用textWatcher:

private final TextWatcher passwordWatcher = new TextWatcher() {
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        public void afterTextChanged(Editable s) {
            //set enable or disable at here
        }
    };

您可以使用afterTextChanged方法进行处理。

答案 3 :(得分:0)

使用下面的多个文本处理器

    TextWatcher watcher = new TextWatcher() {
  @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            //YOUR CODE
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            //YOUR CODE
        }

        @Override
        public void afterTextChanged(Editable editable) {
         if (editable.equals(name.getEditableText())) {
        // DO STH
            checkfields();
    } else if (editable.equals(phone.getEditableText())) {
        // DO STH
           checkfields();
    }
     like that/////////
        }
    };

在oncreate中分配所有edittext

 name.addTextChangedListener(watcher);
        email.addTextChangedListener(watcher);
        phone.addTextChangedListener(watcher);
        address.addTextChangedListener(watcher);

希望这对你有所帮助,请告诉我。

答案 4 :(得分:0)

Direct used button clicked this code

subimit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             if (!submit.getText().toString().isEmpty() &&
            !name.getText().toString().isEmpty() &&
            !surname.getText().toString().isEmpty() &&
            !email.getText().toString().isEmpty() &&
            !phoneNumber.getText().toString().isEmpty() &&
            !address.getText().toString().isEmpty()) {

      //Hear direct intent pass new activity

    } else {

    }
        }
    });