这是我的代码希望它足够清楚 使用此代码我尝试使用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);
}
}
[查找表格附件]
答案 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 {
}
}
});