android学习---TabHost
TabHost
一个简单的示例:
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
实现代码:
package com.leaf.android; import java.util.ArrayList; import java.util.List; import android.app.TabActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TabHost; //TabContentFactory的意思是当某一选项卡被选中时生成选项卡的内容. //如果你的选项卡的内容按某些条件来生成, 请使用该接口.例如:不显示既存的视图而是启动活动. public class Main extends TabActivity implements TabHost.TabContentFactory { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TabHost th = getTabHost(); // newTabSpecd的作用是获取一个新的 TabHost.TabSpec,并关联到当前 TabHost // setIndicator的作用是指定标签和图标作为选项卡的指示符. // setContent的作用是指定用于显示选项卡内容的视图 ID. th.addTab(th.newTabSpec("all").setIndicator("所有通话记录").setContent(this)); th.addTab(th.newTabSpec("ok").setIndicator("已接来电").setContent(this)); th.addTab(th.newTabSpec("cancel").setIndicator("未接来电").setContent(this)); } // 创建选项卡内容的回调函数. public View createTabContent(String tag) { ListView lv = new ListView(this); List<String> list = new ArrayList<String>(); list.add(tag); if (tag.equals("all")) { list.add("leaf"); list.add("android"); list.add("Lilei"); } else if (tag.equals("ok")) { list.add("leaf"); list.add("Lilei"); } else { list.add("leaf"); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, list); lv.setAdapter(adapter); return lv; } }
效果: