可以先自定义一个类实现 TextWatcher 接口,如下:
class MyTextWatcher implements TextWatcher {
int mViewId ;
MyTextWatcher(int viewId) {
mViewId = viewId ;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (mViewId == mMarriageStatus.getId()) {
// TODO
} else if (mViewId == mKinship.getId()) {
// TODO
}
}
@Override
public void afterTextChanged(Editable s) {
}
}
然后如下添加监听。在自定义的类 MyTextWatcher 里面使用 id 区分不同的 TextView 即可。
@Override
protected void initEvent() {
mIvBack.setOnClickListener(v -> finish());
mMarriageStatus.addTextChangedListener(new MyTextWatcher(mMarriageStatus.getId()));
mKinship.addTextChangedListener(new MyTextWatcher(mKinship.getId()));
}
自定义类里面也可以传入 View ,视你的需求而定。
当然,最好还是每个 TextView 都各自监听自己的,这样就无需判断了。