Java 是否可以将[TextWatcher for button disable control]用于两个编辑文本?
我正在使用下面的代码,使我的按钮禁用,直到第一个输入框收到一些数字。 问题是,当我在第二次输入接收号码之前按下按钮时,应用程序就崩溃了 第一个输入变量是Java 是否可以将[TextWatcher for button disable control]用于两个编辑文本?,java,android,Java,Android,我正在使用下面的代码,使我的按钮禁用,直到第一个输入框收到一些数字。 问题是,当我在第二次输入接收号码之前按下按钮时,应用程序就崩溃了 第一个输入变量是firstEdittext,第二个输入变量是secondEditText firstEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int sta
firstEdittext
,第二个输入变量是secondEditText
firstEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Btn.setEnabled(!(firstEditText.getText().toString().trim().isEmpty());
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
是否可以同时使用此TextWatcher?
或者我需要使用另一种方法使我的按钮处于禁用状态该错误是由于试图从
secondEditText
解析空文本而导致的。在这种情况下,您需要将TextWatcher
设置为EditText
s
您可以通过在类中定义一个命名的TextWatcher
,然后将这两个EditText
s都设置为使用它。您还需要修复启用按钮的检查条件
内部onCreate()
:
pl分享你的堆栈回溯问题:他正在使用按钮的点击监听器。我相信,在这种情况下,错误是由于试图解析第二个(空)文本造成的。如果我有空的第二个或两个文本,我会崩溃,那么我可以在哪里定义(tw)?您可以在类中将其定义为类变量(在
onCreate()
之前),也可以在onCreate()
中定义它,就在firstEditText.addTextChangedListener(tw)之前代码>Idk,我将其定义为TextWatcher tw;在onCreate()不起作用之前,我必须使用错误的defineTextWatcher tw=(TextWatcher)findviewbyd(R.id.tw),但仍然不知道如何将tw连接到好的对象
TextWatcher tw = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Btn.setEnabled(!TextUtils.isEmpty(firstEditText.getText()) && !TextUtils.isEmpty(secondEditText.getText()));
}
@Override
public void afterTextChanged(Editable s) {
}
};
firstEditText.addTextChangedListener(tw);
secondEditText.addTextChangedListener(tw);