我正在使用两个TextView和一个Button进行登录。默认情况下,禁用登录按钮(btnSignin)。仅当两个TextView都非空时才应启用该按钮。 我尝试了这个代码,它正在部分工作。但Button只对第一个textView(txtId)做出反应。如果第二个textView在第一个之后被更改,则不会发生任何事情。
为方便起见,我在这里删除了两个@override函数。
usernameTxt = (EditText) findViewById(R.id.txtId);
passwordTxt = (EditText) findViewById(R.id.txtPassword);
final Button signinBtn = (Button) findViewById(R.id.btnSignin);
usernameTxt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
signinBtn.setEnabled( (!usernameTxt.getText().toString().trim().isEmpty()) & (!passwordTxt.getText().toString().trim().isEmpty()) );
}
});
答案 0 :(得分:4)
usernameTxt = (EditText) findViewById(R.id.txtId);
passwordTxt = (EditText) findViewById(R.id.txtPassword);
final Button signinBtn = (Button) findViewById(R.id.btnSignin);
usernameTxt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
signinBtn.setEnabled( (!usernameTxt.getText().toString().trim().isEmpty()) && (!passwordTxt.getText().toString().trim().isEmpty()) );
}
});
也适用于
passwordTxt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
signinBtn.setEnabled( (!usernameTxt.getText().toString().trim().isEmpty()) && (!passwordTxt.getText().toString().trim().isEmpty()) );
}
});
答案 1 :(得分:1)
以下代码只注册userName文本字段,您需要为 passwordTxt
添加类似的内容usernameTxt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
signinBtn.setEnabled( (!usernameTxt.getText().toString().trim().isEmpty()) & (!passwordTxt.getText().toString().trim().isEmpty()) );
}
});
那就是你要为 usernameTxt 指定听众,而不是为 passwordTxt 指定听众。只提供一个
答案 2 :(得分:0)
你没有第二个textview
的听众。为passwordTxt
passwordTxt.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
signinBtn.setEnabled( (!usernameTxt.getText().toString().trim().isEmpty()) & (!passwordTxt.getText().toString().trim().isEmpty()) );
}
});