2012-06-20 125 views
5

我已經經歷了許多示例,問題和教程,但我從來沒有看到使用特定選項卡進行活動啓動(啓動新的意圖)。我知道可以使用.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? 
} 

回答

11

您需要將自己與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 
} 
0

嘗試這與你的標籤位置

意向意圖=新意圖(MyActivity.this,TabScreenActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.putExtra(ConstantString.ViewTab,1); startActivity(intent);

而且在TabScreenActivity

如果構造函數(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); 
    } 
相關問題