跟我学android应用开发 之 如何创建选项卡(Tab)

    在很多应用中都有选项卡,如下:

源码实现:

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));
    }
}
布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/framelayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TabHost
        android:id="@+id/th01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/tv01"
        android:text="所有通话记录"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/tv02"
        android:text="已接来电"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/tv03"
        android:text="未接来电"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</FrameLayout>

另外还可以使用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<String> list = new ArrayList<String>();
		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<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, list);
		lv.setAdapter(adapter);
		return lv;
	}
}

布局文件与前面的相同。

显示效果:






你可能感兴趣的:(android,ListView,list,layout,Class,encoding)