android tabactivity setCurrentTab,求助大神

x_xx 发布于 2014/08/05 14:56
阅读 1K+
收藏 0

求助大神:

说明1:

tabactivity有好几个tab,有时候会从某一个页面(非tab页面),跳转到某个tab页面,比如登陆后跳转到tab index=2的页面

,这个时候startActivity到tabactivity的时候,在tabactivty的oncreate中调用setCurrentTab(2),会发现index=0的第一个activity的oncreate方法被调用了,由于我打算跳转的是index=2的activity,所以不能让activity=0的activity的oncreate方法被调用。

说明2:如果说明1说的不清楚,看一下osc的(随便搜的- -)

http://my.oschina.net/cheneywangc/blog/179573


protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mTabHost = getTabHost();
        TabSpec spec;
        
        spec = mTabHost.newTabSpec("新建");    
        spec.setIndicator("新建");
        spec.setContent(new Intent(this, NewTaskActivity.class));
        mTabHost.addTab(spec);
        
        spec = mTabHost.newTabSpec("设置");    
        spec.setIndicator("设置");
        spec.setContent(new Intent(this, SettingActivity.class));
        mTabHost.addTab(spec);
          
        mTabHost.setCurrentTab(0);         
    }


mTabHost.setCurrentTab(0);这一行,0改成1,然后,你看一下NewTaskActivity的oncreate方法被调用了!
说明3:简单的说就是调用 getTabHost().setCurrentTab(index);的时候,仅仅调用index对应的activity的oncreate方法!


1、代码例子 http://www.mkyong.com/android/android-tablayout-example/

2、如果没说明白,大概是这个意思:https://stackoverflow.com/questions/3121600/how-to-prevent-starting-the-activity-at-the-first-tab-in-a-tabactivity/6688706#6688706

ps:我知道大神都不用tabactivity了,老项目,你懂得。

ps: 找到一个,解决了,但是没说怎么解决的。。。

http://www.oschina.net/question/223455_42745

加载中
0
x
x_xx
安卓大神在哪里?自己顶一下
0
JerryLin
JerryLin

http://stackoverflow.com/questions/10912003/android-tabhost-setcurrenttab

JerryLin
JerryLin
回复 @x_xx : 重载TabActivity,在onCreate里设置默认Tab,可以不让你需要的Activity不走onCreate(印象,不确定)
x
x_xx
亲,您能看一下问题么? 问题是如何setCurrentTab(2)的时候,不让tabhost的第一个tab执行oncreate方法,不是如何让某个tab设置为默认的tab。
0
瑾熙
瑾熙

tabactivity 13开始就不用了啊


x
x_xx
然后呢?
0
z
zhan mejon

http://www.cnblogs.com/liuqxFuture/p/3343675.html

http://my.oschina.net/u/937713/blog/150854

这两个帖子可以解决你的问题;在addTab之前或之后使用反射的方式修改mCurrentTab这个值,使得系统不设置默认tab

返回顶部
顶部