Tab を作ってみた その2

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

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

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

サンプルコード
  1. public class TabSample extends TabActivity implements TabHost.TabContentFactory {  
  2.   @Override  
  3.   public void onCreate(Bundle savedInstanceState) {  
  4.     super.onCreate(savedInstanceState);  
  5.       
  6.     // TabHost の取得  
  7.     final TabHost tabHost = getTabHost();  
  8.       
  9.     // アイコン付きタブ  
  10.     tabHost.addTab(tabHost.newTabSpec("tab1")  
  11.         .setIndicator("tab1", getResources().getDrawable(R.drawable.icon))  
  12.         .setContent(this));  
  13.       
  14.     // 任意の View  
  15.     tabHost.addTab(tabHost.newTabSpec("tab2")  
  16.         .setIndicator("Views")  
  17.         .setContent(new MyTabContentFactory()));  
  18.   
  19.     // Intent を起動するタブ  
  20.     tabHost.addTab(tabHost.newTabSpec("tab3")  
  21.         .setIndicator("List")  
  22.         .setContent(new Intent(this, ListViewSample.class)));  
  23.   }  
  24.   
  25.   public View createTabContent(String tag) {  
  26.     final TextView tv = new TextView(this);  
  27.     tv.setText("This is " + tag);  
  28.     return tv;  
  29.   }  
  30.   
  31.   // TabContentFactory を実装したクラスの作成  
  32.   class MyTabContentFactory implements TabContentFactory {  
  33.     public View createTabContent(String tag) {  
  34.       // 任意の View を設定  
  35.       View view = LayoutInflater.from(TabSample.this).inflate(R.layout.views, null);  
  36.       return view;  
  37.     }    
  38.   }  
  39. }  

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





こんな感じ!

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

0 件のコメント:

コメントを投稿