我已经尝试过通过将代码插入onCreateOptionsMenu (Menu menu)而不成功的方法来访问此网站的几种方法。单击菜单按钮时,我想隐藏键盘。

我在菜单上有三个EditText,可在其中写入一些数据,以及用于插入/删除/修改数据库的选项,但是如果单击,键盘不会自动隐藏。

我有这样的事情:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);

    if(this.getCurrentFocus() != null && this.getCurrentFocus() instanceof EditText){
        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
    return true;
}


仅在我第一次按下菜单按钮时有效。

谢谢!

最佳答案

将代码移到onOptionsItemSelected

 public boolean onOptionsItemSelected(MenuItem item) {
    .....
     if(this.getCurrentFocus() != null && this.getCurrentFocus() instanceof EditText){
         InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
     }
  return super.onOptionsItemSelected(item);
}

07-24 09:49
查看更多