嗨,我的屏幕上有两个编辑文本框。我仅在编辑文本获得焦点时才启用横向支持。并在用户按下软键盘上的完成按钮时将其禁用。用户在第一个编辑文本中输入值,然后按下一步按钮。然后在第二个编辑文本中输入值,然后按“完成”按钮。我要做的一件事情是迫使第二个edittext失去焦点。我尝试了clearFocus()和button.requestFocus(),但没有用。下面是我的代码段。

@Override
public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
    if (actionId == EditorInfo.IME_ACTION_SEND
            || actionId == EditorInfo.IME_ACTION_DONE
            || actionId == EditorInfo.IME_ACTION_GO
            || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {

    ((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
     InputMethodManager imm = (InputMethodManager) context
               .getSystemService(Context.INPUT_METHOD_SERVICE);
     if (imm != null)
     imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

     return true;
    }
    return false;
}
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus)
    ((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}


单击“完成”按钮后,如果用户单击第二个编辑文本,则控件不会出现onFocusChange事件。请帮我

最佳答案

遵循对This问题的接受答案。当您完成OnEditorAction方法中的处理时,只需将焦点设置到该虚拟布局即可

关于android - 如何从编辑文本中强制失去焦点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11984743/

10-10 06:55