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

分享到:
相关推荐
如果你正在学习或使用这个项目,通过阅读代码和理解上述的TabActivity使用方法,你应该能够更好地理解如何在实际项目中运用TabActivity。 总结一下,虽然TabActivity已不再推荐使用,但在特定情况下,它仍能提供一...
在`TabActivity`的实现中,通常会使用`TabHost`和`TabSpec`来创建和设置标签。`TabHost`是一个容器,用于显示和管理多个`TabSpec`。`TabSpec`则是每个标签的配置,包括标签的文本、图标以及对应的`Intent`,这个`...
在Android开发中,"切换卡"通常指的是TabActivity或者使用Fragment和TabLayout实现的界面切换效果,这是一种常见的用户界面设计,用于展示多个相关的视图或功能。本篇将详细讲解如何在Android应用中使用TabActivity...
本文将深入探讨`TabActivity`的使用,以及如何通过源码理解和应用它,同时也会介绍一些相关的工具来辅助开发。 `TabHost`是`TabActivity`的核心组件,它提供了在界面上创建和管理标签页的功能。`TabHost`包含两个...
本文将详细讲解如何在Android应用中使用TabActivity实现分页功能,并结合源码分析其工作原理。 首先,让我们了解TabHost和TabWidget这两个关键组件。TabHost是整个Tab界面的容器,它包含一个TabWidget(用于显示...
5. **使用现代替代方案**:如前所述,`TabActivity`已被弃用,现在推荐使用`ViewPager`配合`Fragment`实现类似功能。`ViewPager`滑动浏览效果更好,`Fragment`提供了更灵活的界面管理。通过`FragmentPagerAdapter`或...
Android 开发中,TabActivity 已经被废除,而使用 ActivityGroup 来代替 TabActivity,可以更加自由灵活,少很多限制和依赖。ActivityGroup 是 Google 提供的一个非常优秀的 API,但它需要做稍微复杂的重写才能用...
然而,`TabActivity`在Android API Level 13之后就被弃用了,现在推荐使用`FragmentTabHost`或者`ViewPager`结合`TabLayout`来实现类似的功能。尽管如此,理解`TabActivity`的工作原理仍然对学习Android历史和理解...
这篇笔记主要探讨了`TabActivity`的使用方法及其背后的原理,同时也涉及到了一些与之相关的工具和源码分析。 首先,`TabActivity`是Android SDK中的一个类,它继承自`ActivityGroup`,在API level 13被标记为过时,...
本文将详细介绍如何使用`Fragment`来模拟`TabActivity`,并实现类似ELong主界面底部栏的动画切换效果。 首先,我们需要理解`Fragment`的概念。`Fragment`是Android应用中的一个可重用组件,它代表UI的一部分,可以...
本篇文章将详细解析如何使用`TabActivity`实现滑动翻页并加入动画效果。 首先,`TabHost`是`TabActivity`的核心组件,它负责管理所有的选项卡和对应的活动。我们需要在布局文件中定义一个`TabHost`,然后在代码中...
在实际开发中,由于`TabActivity`已经过时,现在推荐使用`Fragment`和`ViewPager`来实现类似的选项卡功能。`Fragment`可以看作是一个可重用的UI组件,而`ViewPager`则允许用户左右滑动切换不同的`Fragment`,这提供...
在TabActivity中使用Fragment,可以创建更灵活、可定制的用户界面,每个Tab下的内容都可以由一个独立的Fragment来承载。 TabActivity在早期的Android版本中被广泛使用,它提供了一个容器来显示多个Tab,每个Tab通常...
在早期的Android版本中,TabActivity被广泛使用来实现这一功能,但现在已被废弃,推荐使用Fragment和ViewPager来代替。然而,为了理解这个老式的方法,我们将深入探讨如何使用TabActivity简单实现TabHost显示。 ...
然而,随着Android设计指南的更新,现在推荐使用FragmentTabHost或ViewPager配合Fragment来实现类似功能,因为TabActivity已经过时,不推荐在新项目中使用。 1. **创建TabActivity**:创建一个TabActivity类,然后...
10. **优化与性能**:使用TabActivity可能会导致内存消耗增加和性能问题,因为每个标签下的Activity都会被实例化。使用Fragment和ViewPager可以避免这个问题,因为它们在内存中只保留当前显示的页面。 总之,...
本教程将详细介绍如何使用TabActivity创建一个多页显示的应用,并探讨相关的知识点。 首先,TabHost是Android系统提供的一个用于创建带有标签页的布局组件。它包含两个主要部分:TabWidget(标签栏)和FrameLayout...
看到还有些人在使用TabActvity,这个已经被Google废弃了的类,为了大家方便,写了一个能代替TabActivity的东西。说白了也就是对viewpager跟底部菜单进行了一个封装,标准的底部菜单自定义控件已经写好,如果有另外的...