XML 如下设定
......
app:addTextChangedListener="@{vm.textWatcher}"
app:onFocusChangeListener="@{(view, hasFocus) -> vm.setText(((EditText)view).getText().toString(), hasFocus)}" />
ViewModel 如下设定
public void setText(String text, boolean hasFocus) {
if (hasFocus) {
......
} else {
......
}
}
private TextWatcher textWatcher = new SimpleTextWatcher() {
@Override public void afterTextChanged(Editable s)
......
}
};
为了代码的简洁,定义了 SimpleTextWatcher
public abstract class SimpleTextWatcher implements 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) {
}
@Override
public void afterTextChanged(Editable s) {
}
}