3

現在、タブの変更時にプログラムでソフトキーボードを最小化しようとしています。残念ながら、TabHost が提供するメソッドや、タブが変更されたときにチェックしたり、タブが変更されたときにメソッドを実行したりするメソッドが見つかりません。また、キーボードを閉じるメソッドである hideKeyboard を使用して android:onClick="hideKeyboard" を追加しようとしましたが、このメソッドはタブの変更に対して何もしないようです。hideKeyboard のコードは次のとおりです。

public void hideKeyboard()
{
    InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
    imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}

タブの変更を検出するために試みることができる他の方法はありますか? または、私の hideKeyboard() メソッドに欠陥がありますか?

4

1 に答える 1

6

OnTabChangeListenerは、このような操作を実行するのに最適な場所だと思います。あなたの場合、次のようになります。

tabhost.setOnTabChangedListener(new OnTabChangeListener(){
    @Override
    public void onTabChanged(String tabId){
        hideKeyboard()
    }
})
于 2013-02-19T04:58:37.163 に答える