LoginSignup
7
7

More than 5 years have passed since last update.

現在開いているタブボタンを押した時にアクションを起こす方法

Posted at

現在押しているタブをもう一度押すとWebViewにgoBack()が働くというものを簡単に作ってみます。

まずタブとTouchListenerをonCreate内で作ります。

TabHost tabHost = getTabHost();
TabSpec firstTab = tabHost.newTabSpec("First")
              .setIndicator(chatTab1)
              .setContent(R.id.first_content);
tabHost.addTab(firstTab);

View v1 = getTabWidget().getChildAt(0);
        v1.setOnTouchListener(this);

getChildAt()を活用して作成したタブのViewを作り、setOnTouchListener(this)でタブを押した時に起こす動作を指定します。

しかしこのままだと他のタブから移ってきた最初のタッチでも呼ばれてしまうので、onTouch内で詳細を指定してあげる必要があります。

ここでは、すでにgoback()したいwebviewが開かれているか、そしてそのwebviewがgoBack()可能かどうかで振り分けをしています。


WebView webview;
@Override
    public boolean onTouch(View v, MotionEvent event) {
if (webview.isShown() && webview.canGoBack()) {
                view.goBack();
            }
        return false;
}

タブが何個もある場合はgetChildAt(1)のViewを同様に作成し、if節の終わりに

else if(webview2.isShown&&webview2.canGoBack())

と付け足してあげると同じアクションを簡単に他のタブにも活用できます。
7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7