将意图传递给活动?

问题描述:

我已经在教程的帮助下开发了一个简单的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

覆盖onTabChange(),它会告诉你cureent选项卡中没有的代码。和下一个标签号。

if(nextTab == DayTab) 

比较currentTab,并按标志将日期Tab。

我不知道whenther可以绑定详细的意图,如果是使用应用程序级的数据共享像Application类实现或singlton对象。

尝试覆盖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

正在测试它没有它怎么走?做了这项工作? –