2011-11-28 166 views
0

我已經在教程的幫助下開發了一個簡單的tabwidget。它看起來像這樣:將意圖傳遞給活動?

enter image description here

我的目標是:當用戶點擊是在「天Tab」,但點擊「今天標籤」今天選項卡必須通過今天的活動的控制權交還給天活動顯示當天的一天。

例如。如果我在日期標籤中,並點擊今天標籤。 TODAY選項卡的功能是在日期選項卡中顯示當前日期。這適用於「月份」和「星期」選項卡。這意味着如果用戶的月份標籤處於活動狀態,然後點擊今日標籤:今日標籤必須在同一活動中顯示當前月份。

數據流:月活動 - >今天的活動 - >月活動

我怎樣才能實現這個任務?

我試圖把簡單的話,如果你不明白,請告訴我。我將重申這個問題。

這裏是我以前設置我的標籤

public class Secondactivity extends TabActivity {  
private TabHost mTabHost; 
    private void setupTabHost() { 
mTabHost = getTabHost(); 
} 
     setupTabHost(); 
    mTabHost.getTabWidget().setDividerDrawable(se.copernicus.activity.R.drawable.tab_divider); 
    setupTab(new TextView(this), getString(R.string.month)); 
    setupTab(new TextView(this), getString(R.string.week)); 
    setupTab(new TextView(this), getString(R.string.day)); 
    setupTab(new TextView(this), getString(R.string.today)); 

    mTabHost.setCurrentTabByTag(getString(R.string.month)); 
    private void setupTab(final View view, final String tag) 
{ 
    View tabview = createTabView(mTabHost.getContext(), tag); 

    if (tag.compareTo(getString(R.string.month)) == 0) 
    { 
     Intent intent = new Intent(getApplicationContext(), MonthActivity.class); 

     TabSpec setContent = mTabHost.newTabSpec(getString(R.string.month)).setIndicator(tabview).setContent(new TabHost.TabContentFactory() 
     { 

      public View createTabContent(String tag) 
      { 
       return view; 
      } 

     }); 

     setContent.setContent(intent); 
     mTabHost.addTab(setContent); 
    } 

    if (tag.compareTo(getString(R.string.week)) == 0) 
    { 
     Intent intent = new Intent(getApplicationContext(), WeekActivity.class); 

     TabSpec setContent = mTabHost.newTabSpec(getString(R.string.week)).setIndicator(tabview).setContent(new TabHost.TabContentFactory() 
     { 

      public View createTabContent(String tag) 
      { 
       return view; 
      } 

     }); 

     setContent.setContent(intent); 
     mTabHost.addTab(setContent); 
    } 

    if (tag.compareTo(getString(R.string.day)) == 0) 
    { 
     Intent intent = new Intent(getApplicationContext(), DayActivity.class); 

     TabSpec setContent = mTabHost.newTabSpec(getString(R.string.day)).setIndicator(tabview).setContent(new TabHost.TabContentFactory() 
     { 

      public View createTabContent(String tag) 
      { 
       return view; 
      } 

     }); 

     setContent.setContent(intent); 
     mTabHost.addTab(setContent); 
    } 
    if (tag.compareTo(getString(R.string.today)) == 0) 
    { 
     Intent intent = new Intent(getApplicationContext(), DayActivity.class); 

     TabSpec setContent = mTabHost.newTabSpec(getString(R.string.today)).setIndicator(tabview).setContent(new TabHost.TabContentFactory() 
     { 

      public View createTabContent(String tag) 
      { 
       return view; 
      } 

     }); 

     setContent.setContent(intent); 
     mTabHost.addTab(setContent); 
    } 

} 

private static View createTabView(final Context context, final String text) 
{ 
    View view = LayoutInflater.from(context).inflate(R.layout.tabs_bg, null); 
    TextView tv = (TextView) view.findViewById(R.id.tabsText); 
    tv.setText(text); 
    return view; 
} 
+0

「today」也是選項卡之一嗎? – Pinki

+0

是今天也是標籤活動的一部分 – Vinoth

回答

3

覆蓋onTabChange(),它會告訴你cureent選項卡中沒有的代碼。和下一個標籤號。

if(nextTab == DayTab) 

比較currentTab,並按標誌將日期Tab。

我不知道whenther可以綁定詳細的意圖,如果是使用應用程序級的數據共享像Application類實現或singlton對象。

2

嘗試覆蓋onTabChanged()並傳遞您的意圖或在那裏設置標誌。這可能有所幫助:

@Override 
public void onTabChanged(String tabId) { 

    switch (tabId)) { 

    case 0: 
     // Tab 1 
     break; 
    case 1: 
     // Tab 2 
     break; 
    case 2: 
     // Tab 3 
     break; 
    case 3: 
     // Tab 4 
     break; 

    } 
} 
+0

感謝現在:) – Vinoth

+0

正在測試它沒有它怎麼走?做了這項工作? –

相關問題