我的edittext是在一个listview的item中的 貌似好像在adpter的getview中无效 在activity里面的就可以
运来的函数是这样写的
private void setEdtIpInput() {
EditeTextWatcher ipTextWatcher1 = new EditeTextWatcher(edt_input1);
EditeTextWatcher ipTextWatcher2 = new EditeTextWatcher(edt_input2);
EditeTextWatcher ipTextWatcher3 = new EditeTextWatcher(edt_input3);
EditeTextWatcher ipTextWatcher4 = new EditeTextWatcher(edt_input4);
edt_input1.addTextChangedListener(ipTextWatcher1);
edt_input2.addTextChangedListener(ipTextWatcher2);
edt_input3.addTextChangedListener(ipTextWatcher3);
edt_input4.addTextChangedListener(ipTextWatcher4);
}
class EditeTextWatcher implements TextWatcher {
public EditText mEditText;
public EditeTextWatcher(EditText mEditText) {
super();
this.mEditText = mEditText;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.e("edt", "onTextChanged");
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 3) {
if (this.mEditText == edt_input1) {
edt_input2.requestFocus();
} else if (this.mEditText == edt_input2) {
edt_input3.requestFocus();
}
} else if (s.length() == 1) {
if (this.mEditText == edt_input3) {
edt_input4.requestFocus();
}
} else if (s.length() == 0) {
if (this.mEditText == edt_input4) {
edt_input3.requestFocus();
} else if (this.mEditText == edt_input3) {
edt_input2.requestFocus();
} else if (this.mEditText == edt_input2) {
edt_input1.requestFocus();
}
}
}
}
然后getview中调用无效是什么情况?然后我这样
edt_input2.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) {
Log.e("CharSequence","onTextChanged");
edt_input2.setFocusable(false);
edt_input3.requestFocus();
}
@Override
public void afterTextChanged(Editable s) {
}
});
还是无效?打印出来了 焦点并没有改变。。。 求大神说明一下问题。。