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