在操作栏中切换选项卡时隐藏键盘

时间:2014-04-09 14:51:52

标签: android android-actionbar

我曾经使用TabHost来设置我的标签,但是按照人们的建议,我使用ActionBar.Tab重写了我的代码。在我的旧版本代码中,我按以下方式切换标签时隐藏了键盘:

// Hide Keyboard when changing tab
    th.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String tabId) {
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            switch (th.getCurrentTab()) {
            case 0:
                imm.hideSoftInputFromWindow(tab1.getWindowToken(), 0);
                break;
            case 2:
                imm.hideSoftInputFromWindow(tab1.getWindowToken(), 0);
                break;
            }
        }
    });

我尝试使用类似的方法,但我不知道如何getWindowToken用于ActionBar.Tab。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

if(mActivity.getCurrentFocus() != null) {
        InputMethodManager imm = (InputMethodManager)mActivity.getSystemService(
                Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(mActivity.getCurrentFocus().getWindowToken(), 0);
    }

获取当前焦点,并使用它来获取Window Token。我的听众正在传递一个片段和活动(动态),因此我用它来获得重点。