C/C++プログラマの管理者が, Androidプログラムにチャレンジ. AndroidプログラミングのTipsをメモっていく予定です.

タブがクリックされると, TabChangeイベントが発生する.

TabChangeイベントを処理する

タブをクリックするとTabChangeイベントが発生するので, このTabChangeイベントを処理するイベントリスナを設定する.
    • getTabHostメソッドで, TabHostのインスタンスを取得する.
    • TabHost.OnTabChangeListenerインタフェースを実装したオブジェクトをイベントリスナとして設定する.
    • onTabChangedメソッドにクリックされたときの処理を記述する.
package com.moonlight_aska.android.tabsheet01;

import android.app.TabActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TabHost.TabSpec;

public class TabSheet01 extends TabActivity {
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // TabHostのインスタンスを取得
    TabHost tabs = getTabHost();
    LayoutInflater.from(this).inflate(R.layout.main, tabs.getTabContentView(), true);
    // タブシートの設定
    TabSpec tab01 = tabs.newTabSpec("TabSheet1");
    tab01.setIndicator("TabSheet1");
    tab01.setContent(R.id.sheet01_id);
    tabs.addTab(tab01);
    TabSpec tab02 = tabs.newTabSpec("TabSheet2");
    tab02.setIndicator("TabSheet2");
    tab02.setContent(R.id.sheet02_id);
    tabs.addTab(tab02);
    TabSpec tab03 = tabs.newTabSpec("TabSheet3");
    tab03.setIndicator("TabSheet3");
    tab03.setContent(R.id.sheet03_id);
    tabs.addTab(tab03);
    // 初期表示のタブ設定
    tabs.setCurrentTab(0);

    tabs.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
      // タブがクリックされた時のハンドラ
      @Override
      public void onTabChanged(String tabId) {
        // TODO Auto-generated method stub
        // クリックされた時の処理を記述
        TextView text;
        if(tabId == "TabSheet1") {
          text = (TextView)findViewById(R.id.textview01_id);
          text.setTextColor(Color.BLUE);
        }
        else if(tabId == "TabSheet2") {
          text = (TextView)findViewById(R.id.textview02_id);
          text.setTextColor(Color.RED);
        }
        else if(tabId == "TabSheet3") {
          text = (TextView)findViewById(R.id.textview03_id);
          text.setTextColor(Color.GREEN);
        }
      }
    });
  }
}




コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu


逆引き(基礎編)

画面表示/操作(49)

フラグメント(1)

逆引き(応用編)

Firebase(2)

AD



管理人/副管理人のみ編集できます