日々精進

新しく学んだことを書き留めていきます

選択中のタブがクリックされたイベントを検知する

TabHostインスタンス生成時に以下を実行すればよい。

    // hostはTabHost型のフィールド変数
    TabWidget tabWidget = host.getTabWidget();
    for (int i = 0; i < host.getTabWidget().getTabCount(); i++) {
        View tab = tabWidget.getChildAt(i);
        tab.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                boolean consumedFlg = false;
                if (MotionEvent.ACTION_UP == event.getAction()) {
                    View currTabView = host.getCurrentTabView();
                    if (v.equals(currTabView)) {
                        // ここに処理を実装する
                    }
                }
                return consumedFlg;
            }
        });
    }

参考:

http://hello-hello-world.blogspot.jp/2012/02/android.html