`
gryphone
  • 浏览: 433622 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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(){
			@Override
			public 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;
    }
	
}


}
分享到:
评论

相关推荐

    Android TabActivity 开发案例

    Android TabActivity 开发案例,本案例着重介绍用TabActivity 开发安卓分页架构

    基于GridView和ActivityGroup实现的TAB分页

    在Android应用开发中,"基于GridView和ActivityGroup实现的TAB分页"是一个常见的设计模式,用于构建...随着Android SDK的发展,开发者现在更多地使用Fragment和ViewPager来实现更灵活、更高效和更现代的Tab分页体验。

    使用Fragments取代tabActivity开发网易新闻客户端框架

    同时,考虑使用Paging库实现分页加载,减少一次性加载大量数据对内存的影响。 7. **测试与调试** 完成基本功能后,进行单元测试和集成测试,确保各个部分正常工作。利用Android Studio的Profiler工具进行性能分析,...

    基于android4实现分页功能

    android4平台使用FragmentActivity来代替已经被弃用的TabActivity来实现分页的功能,而且前者是在屏幕的底部来实现的。我代码中的图片是借鉴之前参考的一份代码中的图片,我参考的代码链接是:...

    android 基于ViewPager的下tab滑动分页效果

    `TabActivity` 文件很可能是这个示例中的主活动,它将把这些组件和逻辑组合在一起,提供一个完整的分页Tab界面。通过理解这些核心概念和组件,开发者可以创建出功能丰富且用户友好的Android应用。

    Android App中使用ViewPager实现滑动分页的要点解析

    以前如果要做 Tab 分页的话,必须要用一个很难用的 TabActivity,而且做出来的效果很差,弹性也很小 忘了从什么时候开始,Google release 了 ViewPager 这好东西取代了以前难用的 Gallery 元件,加上从 Honeycomb ...

    android tabhost(选项卡)滑动分页

    如果涉及到更复杂的分页,可能会使用`ViewPager` 和`FragmentPagerAdapter` 来替代`ViewFlipper`,以支持更灵活的页面切换和更好的性能。 总的来说,这个项目涵盖了Android UI设计中的几个关键组件和概念:TabHost...

    Android之ActivityGroup + GridView 实现Tab分页标签

    读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是由GridView与ActivityGroup的组合。每当用户在GridView选中一项,ActivityGroup就把该项对应的Activity的Window作为View添加到...

    TabActivityDemo

    在Android开发中,TabActivity是一种常见的界面布局方式,它能够帮助我们构建分页浏览的应用,通常包含多个可切换的标签,每个标签对应一个单独的Activity或者Fragment。本文将深入探讨TabActivity的工作原理、实现...

    Android仿新浪微博分页管理界面(3)

    多个activity分页管理,为了方便获取上下文,采用继承TabActivity的传统方法。 大致思路:使用RadioGroup点击触发不同的选卡项,选卡项绑定不同的activiity,进而进行分页管理。详解见注解。 /** * 主Activity * ...

    Android入门之ActivityGroup+GridView实现Tab分页标签的方法

    读者也许会马上想到使用TabHost 与 TabActivity的组合,其实最常用的不是它们,而是由GridView与ActivityGroup的组合。每当用户在GridView选中一项,ActivityGroup就把该项对应的Activity的Window作为View添加到...

    基于GridView和ActivityGroup实现的TAB分页(附源码)

    分页大家都会用Android的TabHost和TabActivity的组合,今天我这里实现的是GridView和ActivityGroup实现的分页,这里需要将Activity转换成Window,然后再换成成View添加到容器中,效果如下 1.布局文件底部放一个...

    可以滑动界面切换tab

    /** 记录当前分页ID */ private int currentTabID = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ...

    Activity-sroll.rar_Tabú

    在这个项目中,`TabActivity` 很可能是主活动,负责管理各个Tab页面。`Tab` 的实现通常有两种常见方式:使用`TabHost`(已过时)和使用`ViewPager` 结合`TabLayout`。考虑到现代Android开发的实践,我们更倾向于后者...

    Android组件TabHost实现页面中多个选项卡切换效果

    在Android开发中,TabHost是一个非常重要的组件,用于在同一个界面上实现多个选项卡的切换效果,从而提供分页浏览的用户体验。本文将详细介绍如何利用TabHost组件在Android应用中创建并管理多个选项卡。 首先,我们...

Global site tag (gtag.js) - Google Analytics