如何获取Activity的windowToken没有视图?

Dav*_*Guo 31 android android-activity

现在,当用户触摸键盘外时,我尝试隐藏软键盘:

((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(editView.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
Run Code Online (Sandbox Code Playgroud)

我想把逻辑放在我的基础活动类中,所以如果没有View可以getWindowToken吗?

div*_*nas 40

OnPageChangeListener在一个Activity中写作时,我遇到了完全相同的问题.您可以使用其中一种解决方案.或者:

getWindow().getDecorView().getRootView().getWindowToken()   
Run Code Online (Sandbox Code Playgroud)

要么:

findViewById(android.R.id.content).getWind??owToken()
Run Code Online (Sandbox Code Playgroud)


Han*_*nry 18

当然你可以使用:

getContentView().getWindowToken()
Run Code Online (Sandbox Code Playgroud)

或者你可以参考SO Quest

  • 根据Hanry的建议解决:findViewById(android.R.id.content).getWindowToken() (11认同)
  • 没有getContentView()方法.请改用findViewById(android.R.id.content).getWindowToken(). (7认同)

Ber*_*yle 6

只需使用getWindow().getDecorView().getWindowToken()