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

TabActivity 使用

阅读更多

TabActivity

 

[功能]

一个TabActivity 包含 数个标签

 

 

[代码 步骤]

1. 得到 TabHost 的实例

TabHost host = this.getTabHost();

 

 

 

2. 定义 CustomTabs 用于填充 TabHost 各个标签布局用

写道
其必须包含 public View createTabContent(String tag) 定义

 

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;
    }
	
}

 

3. 使用 CustomTabs

host.addTab(host.newTabSpec(TAB1)
                .setIndicator("Tab 1", getResources().getDrawable(R.drawable.beijing_001_mb5ucom))
                .setContent(item));

 

 

4. 标签变化的监听函数

host.setOnTabChangedListener(new OnTabChangeListener(){
			@Override
			public void onTabChanged(String tabId) {
				// TODO Auto-generated method stub
				
			}
        });

 

 

 

5. emulator 运行截图:

 * 标签1

 

* 标签2

 

 

* 标签3

分享到:
评论
2 楼 vs_diy 2010-11-07  
谢谢。我看看
1 楼 xianming90 2010-11-06  
谢谢,最近在学android,这个实例不错

相关推荐

    TabActivity使用释列

    如果你正在学习或使用这个项目,通过阅读代码和理解上述的TabActivity使用方法,你应该能够更好地理解如何在实际项目中运用TabActivity。 总结一下,虽然TabActivity已不再推荐使用,但在特定情况下,它仍能提供一...

    TabActivity使用实例

    在`TabActivity`的实现中,通常会使用`TabHost`和`TabSpec`来创建和设置标签。`TabHost`是一个容器,用于显示和管理多个`TabSpec`。`TabSpec`则是每个标签的配置,包括标签的文本、图标以及对应的`Intent`,这个`...

    切换卡TabActivity的使用

    在Android开发中,"切换卡"通常指的是TabActivity或者使用Fragment和TabLayout实现的界面切换效果,这是一种常见的用户界面设计,用于展示多个相关的视图或功能。本篇将详细讲解如何在Android应用中使用TabActivity...

    TabActivity的使用

    本文将深入探讨`TabActivity`的使用,以及如何通过源码理解和应用它,同时也会介绍一些相关的工具来辅助开发。 `TabHost`是`TabActivity`的核心组件,它提供了在界面上创建和管理标签页的功能。`TabHost`包含两个...

    TabActivity 分页 使用

    本文将详细讲解如何在Android应用中使用TabActivity实现分页功能,并结合源码分析其工作原理。 首先,让我们了解TabHost和TabWidget这两个关键组件。TabHost是整个Tab界面的容器,它包含一个TabWidget(用于显示...

    TabActivity之间跳转、传值

    5. **使用现代替代方案**:如前所述,`TabActivity`已被弃用,现在推荐使用`ViewPager`配合`Fragment`实现类似功能。`ViewPager`滑动浏览效果更好,`Fragment`提供了更灵活的界面管理。通过`FragmentPagerAdapter`或...

    ActivityGroup 代替TabActivity的用法

    Android 开发中,TabActivity 已经被废除,而使用 ActivityGroup 来代替 TabActivity,可以更加自由灵活,少很多限制和依赖。ActivityGroup 是 Google 提供的一个非常优秀的 API,但它需要做稍微复杂的重写才能用...

    使用 TabActivity 实现滑动翻页(带动画)和标签置底

    然而,`TabActivity`在Android API Level 13之后就被弃用了,现在推荐使用`FragmentTabHost`或者`ViewPager`结合`TabLayout`来实现类似的功能。尽管如此,理解`TabActivity`的工作原理仍然对学习Android历史和理解...

    TabActivity笔记

    这篇笔记主要探讨了`TabActivity`的使用方法及其背后的原理,同时也涉及到了一些与之相关的工具和源码分析。 首先,`TabActivity`是Android SDK中的一个类,它继承自`ActivityGroup`,在API level 13被标记为过时,...

    用Fragment模拟TabActivity

    本文将详细介绍如何使用`Fragment`来模拟`TabActivity`,并实现类似ELong主界面底部栏的动画切换效果。 首先,我们需要理解`Fragment`的概念。`Fragment`是Android应用中的一个可重用组件,它代表UI的一部分,可以...

    TabActivity 实现滑动翻页源码

    本篇文章将详细解析如何使用`TabActivity`实现滑动翻页并加入动画效果。 首先,`TabHost`是`TabActivity`的核心组件,它负责管理所有的选项卡和对应的活动。我们需要在布局文件中定义一个`TabHost`,然后在代码中...

    TabActivity

    在实际开发中,由于`TabActivity`已经过时,现在推荐使用`Fragment`和`ViewPager`来实现类似的选项卡功能。`Fragment`可以看作是一个可重用的UI组件,而`ViewPager`则允许用户左右滑动切换不同的`Fragment`,这提供...

    Fragment + TabActivity实现标签内跳转

    在TabActivity中使用Fragment,可以创建更灵活、可定制的用户界面,每个Tab下的内容都可以由一个独立的Fragment来承载。 TabActivity在早期的Android版本中被广泛使用,它提供了一个容器来显示多个Tab,每个Tab通常...

    使用TabActivity简单实现TabHost显示

    在早期的Android版本中,TabActivity被广泛使用来实现这一功能,但现在已被废弃,推荐使用Fragment和ViewPager来代替。然而,为了理解这个老式的方法,我们将深入探讨如何使用TabActivity简单实现TabHost显示。 ...

    Android学习4——ListActivity,TabActivity

    然而,随着Android设计指南的更新,现在推荐使用FragmentTabHost或ViewPager配合Fragment来实现类似功能,因为TabActivity已经过时,不推荐在新项目中使用。 1. **创建TabActivity**:创建一个TabActivity类,然后...

    TabActivity中的Tab标签详细设置

    10. **优化与性能**:使用TabActivity可能会导致内存消耗增加和性能问题,因为每个标签下的Activity都会被实例化。使用Fragment和ViewPager可以避免这个问题,因为它们在内存中只保留当前显示的页面。 总之,...

    Android TabActivity实现多页显示效果

    本教程将详细介绍如何使用TabActivity创建一个多页显示的应用,并探讨相关的知识点。 首先,TabHost是Android系统提供的一个用于创建带有标签页的布局组件。它包含两个主要部分:TabWidget(标签栏)和FrameLayout...

    TabActivity替代

    看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的...

Global site tag (gtag.js) - Google Analytics