Tab を作ってみた その2

XMLリソースを使わずにTabを作る場合(XMLリソース使う場合は Tab を作ってみた)
Intent を指定するか,
TabHost.TabContentFactory インターフェースを使用する.

TabContentFactory の public View createTabContent(String tag) を実装すると,
返り値の View がそのまま Tab の画面に表示される

というわけで,Tab を作ってみる

サンプルコード
public class TabSample extends TabActivity implements TabHost.TabContentFactory {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // TabHost の取得
    final TabHost tabHost = getTabHost();
    
    // アイコン付きタブ
    tabHost.addTab(tabHost.newTabSpec("tab1")
        .setIndicator("tab1", getResources().getDrawable(R.drawable.icon))
        .setContent(this));
    
    // 任意の View
    tabHost.addTab(tabHost.newTabSpec("tab2")
        .setIndicator("Views")
        .setContent(new MyTabContentFactory()));

    // Intent を起動するタブ
    tabHost.addTab(tabHost.newTabSpec("tab3")
        .setIndicator("List")
        .setContent(new Intent(this, ListViewSample.class)));
  }

  public View createTabContent(String tag) {
    final TextView tv = new TextView(this);
    tv.setText("This is " + tag);
    return tv;
  }

  // TabContentFactory を実装したクラスの作成
  class MyTabContentFactory implements TabContentFactory {
    public View createTabContent(String tag) {
      // 任意の View を設定
      View view = LayoutInflater.from(TabSample.this).inflate(R.layout.views, null);
      return view;
    }  
  }
}

プログラムを実行すると...





こんな感じ!

参考サイト
http://developer.android.com/intl/ja/reference/android/widget/TabHost.TabContentFactory.html

0 件のコメント:

コメントを投稿