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 件のコメント:
コメントを投稿