我喜欢在按钮点击内有edit_text的文本观察器。文本观察器应仅在单击按钮时起作用。我在按钮单击中使用了文本观察器代码。但它没有那样工作,它会在编辑文本发生变化时触发。我也尝试了以下代码。也不起作用。
edt_zip.setImeOptions(EditorInfo.IME_ACTION_DONE);
edt_zip.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
if (btn_update_reader.getText().toString()
.equals("CANCEL UPDATE")) {
btn_update_reader.setText("UPDATE READER");
}
return true;
}
return false;
}
});
答案 0 :(得分:1)
创建一个布尔变量来存储文本编辑状态,该状态在用户单击按钮时被修改(true / false)。使用布尔值来阻止TextWatch触发。 IE:
private lTextWatcherOn = false; // set in button.OnClick()
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (lTextWatchOn) {
// do what is needed
}
}