在很多应用中都有选项卡,如下:
源码实现:
package com.alex.app.testtab;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
public class MainActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost th = getTabHost();
//inflate对应的layout
LayoutInflater.from(this).inflate(R.layout.main, th.getTabContentView(), true);
//添加三个选项卡
th.addTab(th.newTabSpec("all").setIndicator("all calls").setContent(R.id.tv01));
th.addTab(th.newTabSpec("ok").setIndicator("answered").setContent(R.id.tv02));
th.addTab(th.newTabSpec("not").setIndicator("not answered").setContent(R.id.tv03));
}
}布局文件:
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/framelayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:id="@+id/th01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/tv01"
android:text="所有通话记录"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/tv02"
android:text="已接来电"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:id="@+id/tv03"
android:text="未接来电"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
另外还可以使用TabHost.TabContentFactory来按需生成选项卡的内容:源码
package com.alex.app.testtab;
import java.util.ArrayList;
import java.util.List;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TabHost.TabContentFactory;
public class MainActivity extends TabActivity implements TabContentFactory{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost th = getTabHost();
//inflate对应的layout
LayoutInflater.from(this).inflate(R.layout.main, th.getTabContentView(), true);
//添加三个选项卡
th.addTab(th.newTabSpec("all").setIndicator("all calls").setContent(this));
th.addTab(th.newTabSpec("ok").setIndicator("answered").setContent(this));
th.addTab(th.newTabSpec("not").setIndicator("not answered").setContent(this));
}
@Override
public View createTabContent(String tag) {
ListView lv = new ListView(this);
List list = new ArrayList();
list.add(tag);
if(tag.equals("all"))
{
list.add("daddy");
list.add("mummy");
list.add("tommy");
}
else if(tag.equals("ok"))
{
list.add("daddy");
list.add("mummy");
}
else if(tag.equals("not"))
{
list.add("tommy");
}
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_checked, list);
lv.setAdapter(adapter);
return lv;
}
}
布局文件与前面的相同。
显示效果: