如何实现选项卡 如题 请问 如何实现选项卡 不用tabactivity(过期) 不用activitygroup(过期) 不用LocalActivityManager(过期) 也不用Fragment(不好用) 然后每个tab是一个activity 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单,你每个activity的顶部都放一个TabHost,这样你还可省一个activity。 同问,android 3.x以上就推荐使用Fragment技术了,在android-support-v4.jar里有FragmentTabHost,但我按官方的sample就出错,请高人现身。 感谢分享 你不说我真不不知道有这个类 等我弄好了再给你发个demo Fragment使用可以参考Settings源码 其他的方式实现 可以参考Contents源码 已经找到兼容性TabHost了 FragmentTabHost 据说FragmentTabHost在2.2 2.3上不太灵光,http://code.google.com/p/android/issues/detail?id=40035 用这个还是等等再说。我选用的还是activity和TabHost,但是在一个activity内折腾。见http://blog.csdn.net/west8623/article/details/7453814你们怎么看? 选FragmentTabHost如何考虑兼容2.2 2.3的用户? 你这个例子的选项卡是view 但是我的需求是选项卡里面是activity 也就是有生命周期的 所以你的基本没什么用处 很多应用的选项卡里面都有大量的事情要处理 考虑的东西也很多 Fragment就能实现Activity那种拥有一整套生命周期的效果 以为你是出难题,我的回答只是抬扛。不过你要是2.2不兼容,我的建议还是可以考虑的。一般用的activity和TabHost组合,是在一个activity内折腾;你只要一模一样做几个,在监听器实现跳转; mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { @Override public void onTabChanged(String tabId) { // TODO Auto-generated method stub if (tabId.equals("tab1")) { currentTab = "tab1"; } else if (tabId.equals("tab2")) { currentTab = "tab2"; } else if (tabId.equals("tab3")) { currentTab = "tab3"; } else if (tabId.equals("tab4")) { currentTab = "tab4"; } } });跳转到新的activity;用mTabHost.setCurrentTab()设定当前Tab;这样也拥有一整套生命周期的效果,功能上估计也一样;只是不会推兼。 你没用过tabhost吧 看你说的就知道了 如果是tabhost+activity的组合 必须要用到localactivitymanager这个过期的类的 不然就会报错 一、如果用localactivitymanager,选项卡里面就可是activity;跳的话就在addTab这边做,Intent = new Intent(this, TestActivity.class);mTabHost.addTab(mTabHost .newTabSpec("tab1") .setIndicator("TAB1", getResources().getDrawable(R.drawable.gimp)) .setContent(intent));二、如果选项卡只是viewgroup,是不需要localactivitymanager;我的意思是在监听器内跳,也就是onTabChanged(String tabId) {},这边用startActivity完成;这种做法不是官方推荐的做法;但如果2.2不兼容,而你又想你的程序寿命长一点,不用过期的方法,不见得不可取;三、我现在用的是activity和TabHost,在一个activity内折腾,是不需要localactivitymanager, 用得很好。 我刚才测试过了,跳转没问题,只是做几套一模一样的TabHost比较麻烦而已。 如何导入dalvik.annotation.EnclosingMethod 想买一个电脑,想买苹果,感觉不怎么适合编程,求介绍。。。 Android 影音设计 ExpandableListView适配问题数组取不到值! 打开framebuffer设备失败 android listview 赋值问题 求助帖,进来给个建议吧 求大神帮助小白 Eclipse 里报 did you mean to use @+id instead of @+android:id? Android Studio如何配置环境变量 求教混淆代码问题 GERRIT 添加新用户怎么添加?
感谢分享 你不说我真不不知道有这个类 等我弄好了再给你发个demo
你这个例子的选项卡是view 但是我的需求是选项卡里面是activity 也就是有生命周期的 所以你的基本没什么用处 很多应用的选项卡里面都有大量的事情要处理 考虑的东西也很多 Fragment就能实现Activity那种拥有一整套生命周期的效果
不过你要是2.2不兼容,我的建议还是可以考虑的。一般用的activity和TabHost组合,是在一个activity内折腾;你只要一模一样做几个,在监听器实现跳转; mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub if (tabId.equals("tab1")) {
currentTab = "tab1";
} else if (tabId.equals("tab2")) {
currentTab = "tab2";
} else if (tabId.equals("tab3")) {
currentTab = "tab3";
} else if (tabId.equals("tab4")) {
currentTab = "tab4";
} }
});
跳转到新的activity;用mTabHost.setCurrentTab()设定当前Tab;这样也拥有一整套生命周期的效果,功能上估计也一样;只是不会推兼。
你没用过tabhost吧 看你说的就知道了 如果是tabhost+activity的组合 必须要用到localactivitymanager这个过期的类的 不然就会报错
一、如果用localactivitymanager,选项卡里面就可是activity;跳的话就在addTab这边做,Intent = new Intent(this, TestActivity.class);
mTabHost.addTab(mTabHost
.newTabSpec("tab1")
.setIndicator("TAB1",
getResources().getDrawable(R.drawable.gimp))
.setContent(intent));
二、如果选项卡只是viewgroup,是不需要localactivitymanager;我的意思是在监听器内跳,也就是onTabChanged(String tabId) {},这边用startActivity完成;这种做法不是官方推荐的做法;但如果2.2不兼容,而你又想你的程序寿命长一点,不用过期的方法,不见得不可取;三、我现在用的是activity和TabHost,在一个activity内折腾,是不需要localactivitymanager, 用得很好。