【问题标题】:How to launch an activity with a specific tab?如何使用特定选项卡启动活动?
【发布时间】:2012-06-20 16:51:33
【问题描述】:

我浏览了许多示例、问题和教程,但从未见过带有特定选项卡的活动启动(启动新意图)。我知道可以使用.setCurrentTab 切换到选项卡,但这只能从父活动选项卡内部完成。从另一个活动中启动一个活动中包含的特定选项卡怎么样?可能吗?如果是,那怎么办?

在我的代码中,在标准活动启动时,用户会显示第一个选项卡,但我希望他转到第四个选项卡,以防他从另一个活动中被重定向。 我的 TabHost 代码(MyTabActivity):

int tabIndex = 0;

          mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10));
          mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable));
          mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product));
          mTabHost.addTab(mTabHost.newTabSpec("regular").setIndicator("Regular").setContent(R.id.General));


          mTabHost.setCurrentTab(tabIndex);

现在在另一个活动中:

public void gotoTab() {
//This will take me to the first tab
Intent i = new Intent(this, MyTabActivity.class);
startActivity(i);
finish();
//How to I make it take me to the fourth tab?
}

【问题讨论】:

    标签: android android-tabhost android-tabactivity android-tabs


    【解决方案1】:

    您需要在新活动的构造函数中使用setCurrentTab 自行处理。

    在调用时,您应该在意图中添加额外的值 -

    Intent i = new Intent(this, MyTabActivity.class);
    i.putExtra("FirstTab", 4);
    

    在 MyTabActivity 的构造函数中 -

    Intent i = getIntent();
    int tabToOpen = i.getIntExtra("FirstTab", -1);
    if (tabToOpen!=-1) {
        // Open the right tab
    }
    

    【讨论】:

      【解决方案2】:

      用你的标签位置试试这个

      Intent 意图 = new Intent(MyActivity.this, TabScreenActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra(ConstantString.ViewTab,1); 开始活动(意图);

      在 TabScreenActivity 的构造函数中

      if (getIntent() != null) {

              tabPosition = getIntent().getIntExtra(ConstantString.ViewTab, tabPosition);
      
              if (tabPosition == 1) {
                  new Handler().postDelayed(new Runnable() {
                      @Override
                      public void run() {
                          viewPager.setCurrentItem(1, true);
                      }
                  }, 1000);
              } else {
                  viewPager.setCurrentItem(0, true);
              }
      
      
          } else {
              viewPager.setCurrentItem(0, true);
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        相关资源
        最近更新 更多