-1

这是我的代码希望它足够清楚使用此代码我正在尝试使用 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);
        }

    }

[查找表格的附件图像]

在此处输入图像描述

4

5 回答 5

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

    }  });
于 2016-07-29T07:01:03.223 回答
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 方法处进行处理。

于 2016-07-29T07:01:44.800 回答
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);

希望这对你有帮助,让我知道。

于 2016-07-29T07:12:30.000 回答
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 {

    }
        }
    });
于 2016-07-29T07:15:47.247 回答
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

于 2016-07-29T07:00:39.410 回答