はうすてんぼぶ

コードかいてて疑問に思ったことや、興味あることをつらつらと暇なときに書く場所、ここはそんな場所

getEndOfSummer();

夏はいつ終わるんだろうね
妙に連日暑くてゴロゴロしたくなるぜ


ところで


タブの遷移の追跡の件は何とか解決


リファレンスちゃんと読まないといけないね
学ぼうね俺


まぁ必要なメソッドも何も


OnTabChangedListenerっていう便利なものを完全にスルーしてました


具体的には以下のような感じで解決

public class MayViewer extends Activity implements OnClickListener,OnTabChangeListener{
//〜省略〜
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);


      // TabHostクラス初期設定
      TabHost tabHost = (TabHost)findViewById(R.id.tabhost);
      tabHost.setup();


      // Tab1 設定
      TabSpec tab1 = tabHost.newTabSpec("tab1");
      tab1.setIndicator("管理"); // タブに表示する文字列
      tab1.setContent(R.id.content1); // タブ選択時に表示するビュー
      tabHost.addTab(tab1); // タブホストにタブ追加


      // Tab2 設定
      TabSpec tab2 = tabHost.newTabSpec("tab2");
      tab2.setIndicator("カタログ"); // タブに表示する文字列
      tab2.setContent(R.id.content2); // タブ選択時に表示するビュー
      tabHost.addTab(tab2); // タブホストにタブ追加


      // Tab3 設定
      TabSpec tab3 = tabHost.newTabSpec("tab3");
      tab3.setIndicator("スレッド"); // タブに表示する文字列
      tab3.setContent(R.id.content3); // タブ選択時に表示するビュー
      tabHost.addTab(tab3);
      tabHost.setOnTabChangedListener(this);

      // 初期表示設定
      tabHost.setCurrentTab(0);
//〜省略〜
   }
//〜省略〜
  @Override
  public void onTabChanged(String tabId) {
      Toast.makeText(this, "タブ変更("+tabId+")", Toast.LENGTH_SHORT).show();
  }
//〜省略〜
}

こんな感じでいける
onTabChangedのところで現在のタブIDを記憶しておいて
メニューの表示を入れ替えるようにすれば期待通りの結果になる、はずだし!


これでやっとこさタブの変更を追跡できるようになったのでメニューの実装ができるし!


他のとこもちょっとずつ作らないといけないけど…

  • タブによってメニューの変わる様子

f:id:Silent-Bob:20090925143903j:image:medium
f:id:Silent-Bob:20090925143904j:image:medium