在我的一个活动中,我有三个EditText
s和一个OK按钮。 OnFocusChangeListener
设置为全部三个EditText
s。聆听者应该在每次焦点丢失时触发。OnFocusChange不总是工作
在EditText
之间切换完美。但是,如果用户按下确定按钮,则在按下按钮之前,用户关注的EditText
没有焦点改变(失去焦点)。
我的代码有什么问题?
private class MyOnFocusChangeListener implements OnFocusChangeListener {
private EditText editText;
public MyOnFocusChangeListener(final EditText editText) {
super();
this.editText = editText;
}
@Override
public void onFocusChange(final View view, final boolean isFocused) {
if (!isFocused) {
if (editText == editText1) {
// Do a calculation
} else if (editText == editText2) {
// Do another calculation
} else if (editText == editText3) {
// Do a different calculation
}
}
}
}
@Override
public void onCreate(final Bundle bundle) {
// ...
editText1.setOnFocusChangeListener(new MyOnFocusChangeListener(editText1));
editText2.setOnFocusChangeListener(new MyOnFocusChangeListener(editText2));
editText3.setOnFocusChangeListener(new MyOnFocusChangeListener(editText3));
// ...
}
这可能会触发所有三个EditText上的OnFocusChange,因此我无法使用它。但是这帮助我找到了一个更好的方法。我现在将EditText存储在类成员和OnClick按钮中,我清除该特定EditText的焦点。这就像一个魅力。非常感谢。 – 2012-02-24 18:44:54