我创建了一个方法来检查键盘是否在带有editText: searchfield的活动(tab)中使用。每当我离开这个活动(tab)并切换到另一个活动时,我想关闭键盘。因此,我在onStop()中调用该方法。但是什么也没发生,为什么它不起作用呢?有没有更多关于Android中onStop()如何工作的见解?我该怎么让它起作用? /非常感谢!
@Override
protected void onStop()
{
super.onStop();
this.hideKeyboard(); <----------------------
if(this.data != null)
{
this.data.destroy();
}
}
private void hideKeyboard()
{
if (this.searchField != null)
{
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(this.searchField.getWindowToken(), 0);
}
}
onPause()
而不是onStop()
吗? - FloernActivity
中使用TabHost.OnTabChangeListener()
,并从那里调用您的hideKeyboard()
方法。http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html
- SquonkDialog
(例如)的出现将导致当前的Activity
被暂停,即onPause()
将被调用。如果您的代码设计不会受到这种情况的影响,那么就没问题了 - 不过,您的问题确实指定了更改选项卡,因此在这种情况下,使用onTabChangeListener
方法是正确的方法。 - Squonk