首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

TabActivity 分页 施用

2012-09-23 
TabActivity 分页 使用TabActivity 分页[功能]TabActivity即 该Activity 包括 若干个标签 每个标签里面包

TabActivity 分页 使用
TabActivity 分页

[功能]
TabActivity  即 该Activity 包括 若干个标签 每个标签里面包含一个Layout 就如同普通意义上的Activity 一样

[原理]
1. 每个标签的生成 都是借助于 TabHost
2. 每个标签里面都可以当做一个Activity 里面可以包含若干个View 比如 TextView ImageView 等等
3. 若干个标签是以 String 参数来区分的

[代码]
1. 得到TabHost实例

TabHost host = this.getTabHost();

(其仅在TabActivity里面有效)

2. 创建一个标签
public final static String TAB1 = "tab1";host.addTab(host.newTabSpec(TAB1)                .setIndicator("", getResources().getDrawable(R.drawable.beijing_001_mb5ucom))                .setContent(item));


3. 标签里面如何布局
host.setContent(item));

(且 item 必须 implements TabHost.TabContentFactory)

4. 自定义标签的布局
public class CustomTabs implements TabHost.TabContentFactory  {Activity activity;LayoutInflater inflater;LinearLayout layout;public CustomTabs (Activity a) {activity = a;inflater = activity.getLayoutInflater();}/** {@inheritDoc} */    public View createTabContent(String tag) {    activity.setTitle(tag);        return addCustomView(tag);    }            public View addCustomView(String id){        layout = new LinearLayout(activity);        layout.setOrientation(LinearLayout.VERTICAL);                if(id.equals(TAB1)){            ImageView iv = new ImageView(activity);            iv.setImageResource(R.drawable.o);            layout.addView(iv,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));        }        else if(id.equals(TAB2)){                    EditText edit = new EditText(activity);            layout.addView(edit,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));                        Button btn = new Button(activity);            btn.setText("OK");            layout.addView(btn,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));                        RadioGroup group = new RadioGroup(activity);            group.setOrientation(LinearLayout.HORIZONTAL);            RadioButton radio1 = new RadioButton(activity);            radio1.setText("Radio 1");            group.addView(radio1);            RadioButton radio2 = new RadioButton(activity);            radio2.setText("Radio 2");            group.addView(radio2);                        layout.addView(group,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));        }        else if(id.equals(TAB3)){                LinearLayout.LayoutParams param3 =                new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);                    layout.addView(inflater.inflate(R.layout.item_3, null),param3);        }        else if(id.equals(TAB4)){                LinearLayout.LayoutParams param4 =                new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);                    layout.addView(inflater.inflate(R.layout.item_4, null),param4);        }        else {        TextView tv5 = new TextView(activity);        tv5.setText("no resource aviable!");        tv5.setGravity(1);                layout.addView(tv5,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));        }        return layout;    }}




[所有代码]
public class CustomTabsUsage extends TabActivity {public final static String TAB1 = "tab1";public final static String TAB2 = "tab2";public final static String TAB3 = "tab3";public final static String TAB4 = "tab4";public final static String TAB5 = "tab5";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);                CustomTabs item = new CustomTabs(this);                TabHost host = this.getTabHost();                host.addTab(host.newTabSpec(TAB1)                .setIndicator("", getResources().getDrawable(R.drawable.beijing_001_mb5ucom))                .setContent(item));        host.addTab(host.newTabSpec(TAB2)                .setIndicator("",getResources().getDrawable(R.drawable.beijing_002_mb5ucom))                .setContent(item));        host.addTab(host.newTabSpec(TAB3)        .setIndicator("",getResources().getDrawable(R.drawable.beijing_003_mb5ucom))        //.setIndicator("Tab3")                .setContent(item));        host.addTab(host.newTabSpec(TAB4)                .setIndicator("",getResources().getDrawable(R.drawable.beijing_004_mb5ucom))                .setContent(item));        host.addTab(host.newTabSpec(TAB5)                .setIndicator("",getResources().getDrawable(R.drawable.beijing_005_mb5ucom))                .setContent(item));                        host.setOnTabChangedListener(new OnTabChangeListener(){@Overridepublic void onTabChanged(String tabId) {// TODO Auto-generated method stub}        });                    }    public class CustomTabs implements TabHost.TabContentFactory  {Activity activity;LayoutInflater inflater;LinearLayout layout;public CustomTabs (Activity a) {activity = a;inflater = activity.getLayoutInflater();}/** {@inheritDoc} */    public View createTabContent(String tag) {    activity.setTitle(tag);        return addCustomView(tag);    }            public View addCustomView(String id){        layout = new LinearLayout(activity);        layout.setOrientation(LinearLayout.VERTICAL);                if(id.equals(TAB1)){            ImageView iv = new ImageView(activity);            iv.setImageResource(R.drawable.o);            layout.addView(iv,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));        }        else if(id.equals(TAB2)){                    EditText edit = new EditText(activity);            layout.addView(edit,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));                        Button btn = new Button(activity);            btn.setText("OK");            layout.addView(btn,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));                        RadioGroup group = new RadioGroup(activity);            group.setOrientation(LinearLayout.HORIZONTAL);            RadioButton radio1 = new RadioButton(activity);            radio1.setText("Radio 1");            group.addView(radio1);            RadioButton radio2 = new RadioButton(activity);            radio2.setText("Radio 2");            group.addView(radio2);                        layout.addView(group,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));        }        else if(id.equals(TAB3)){                LinearLayout.LayoutParams param3 =                new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);                    layout.addView(inflater.inflate(R.layout.item_3, null),param3);        }        else if(id.equals(TAB4)){                LinearLayout.LayoutParams param4 =                new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);                    layout.addView(inflater.inflate(R.layout.item_4, null),param4);        }        else {        TextView tv5 = new TextView(activity);        tv5.setText("no resource aviable!");        tv5.setGravity(1);                layout.addView(tv5,            new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));        }        return layout;    }}}

热点排行