OnFocusChange并不总是有效

Har*_*elm 7 android focus android-edittext

在我的一项活动中,我有三个EditText和一个OK按钮.该OnFocusChangeListener设置为所有三个EditText秒.每次焦点丢失时,听众都应该触发.

EditTexts 之间切换完美.但是,如果用户按下OK按钮,则在按下按钮之前没有为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));
    // ...
}
Run Code Online (Sandbox Code Playgroud)

don*_*221 9

当用户点击OK或其他按钮时,您可以尝试清除焦点....

例如

 builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() 
 {
     public void onClick(DialogInterface dialog, int whichButton) 
     {
          editText1.clearfocus();
          editText2.clearfocus();
          editText3.clearfocus();
          ....
     }
 }
Run Code Online (Sandbox Code Playgroud)