Java 检查2个(或更多)编辑文本是否为空
有两个编辑文本(accName和accMoney)要检查为不为空,以便启用按钮(btnCrAcc) 尝试按照下面的代码执行。但事实上,这并不是我想要的方式。当我更改accMoney字段时,它会同时检查两个编辑文本(但在此之后,我可以将accName更改为“”,并且按钮仍将启用 我认为一个可能的解决方案是为这两个字段设置Java 检查2个(或更多)编辑文本是否为空,java,android,android-edittext,listener,Java,Android,Android Edittext,Listener,有两个编辑文本(accName和accMoney)要检查为不为空,以便启用按钮(btnCrAcc) 尝试按照下面的代码执行。但事实上,这并不是我想要的方式。当我更改accMoney字段时,它会同时检查两个编辑文本(但在此之后,我可以将accName更改为“”,并且按钮仍将启用 我认为一个可能的解决方案是为这两个字段设置addTextChangedListener,但它会消耗更多内存?(告诉我:这是一个好选项吗?) 如果有人告诉我如何正确地做到这一点,我会非常感激 我有以下代码: protec
addTextChangedListener
,但它会消耗更多内存?(告诉我:这是一个好选项吗?)
如果有人告诉我如何正确地做到这一点,我会非常感激
我有以下代码:
protected void onCreate(Bundle savedInstanceState) {
//..
accName = (EditText) findViewById(R.id.txtName);
accMoney = (EditText) findViewById(R.id.txtMoney);
accDescr = (EditText) findViewById(R.id.txtDescr);
accsListView = (ListView) findViewById(R.id.listView);
//..
final Button btnCrAcc = (Button) findViewById(R.id.btnCreateAccount);
accMoney.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) {
btnCrAcc.setEnabled(!accName.getText().toString().trim().isEmpty());
btnCrAcc.setEnabled(!accMoney.getText().toString().trim().isEmpty()); // check this
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
试试这个:
TextWatcher watcher = 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) {
btnCrAcc.setEnabled(!accName.getText().toString().trim().isEmpty() && !accMoney.getText().toString().trim().isEmpty());
}
@Override
public void afterTextChanged(Editable editable) {
}
};
accMoney.addTextChangedListener(watcher);
accName.addTextChangedListener(watcher;
试试这个:
if(accName.getText().length() == 0 || accMoney.getText().length() == 0) {
//do your stuff
}
创建一个实现TextWatcher的类:
而不是对两个EditText使用textwatcher:
您可以使用单个
TextWatcher
实例:
TextWatcher myWatcher = 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) {
btnCrAcc.setEnabled(!accName.getText().toString().trim().isEmpty() &&
!accMoney.getText().toString().trim().isEmpty());
}
});
accName.addTextChangedListener(myWatcher);
accMoney.addTextChangedListener(myWatcher);
MyTextWatcher myTextWatcher = new MyTextWatcher();
accName.addTextChangedListener(myTextWatcher);
accMoney.addTextChangedListener(myTextWatcher);
TextWatcher myWatcher = 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) {
btnCrAcc.setEnabled(!accName.getText().toString().trim().isEmpty() &&
!accMoney.getText().toString().trim().isEmpty());
}
});
accName.addTextChangedListener(myWatcher);
accMoney.addTextChangedListener(myWatcher);