2011-12-01 94 views
0

我会尝试尽可能简短地解释我的问题。我有4个选项卡,“月”,“周”,“日”,“今日”。这些日子都是单独的活动。当用户点击“今日”标签时,该活动必须先检查先前的活动,然后相应地显示当前日期。例如。如果用户之前点击过DAY,然后点击TODAY,则TODAY活动应显示今天的日期。 “月”“周”活动同样如此。今天将检查之前的活动并分别显示当前月份和当周。需要根据选定的选项卡显示活动

The TABs: each are a separate activity

这里是我用来做我的标签代码。

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; 
    } 
} 

回答

4

Vinoth, 这是更好地使用共享的喜好设定这个.store共享偏好当u点击选项卡上的值。 例如,U单击天选项卡上使用下面的共享PREF

getSharedPreferences("Test", 0).edit().putString("Check", "day").commit(); 

,并使用下面的偏好时,点击月份标签上

getSharedPreferences("Test", 0).edit().putString("Check", "month").commit(); 

,并使用下面的偏好时,点击一周选项卡上

getSharedPreferences("Test", 0).edit().putString("Check", "week").commit(); 

最后,当我们点击Today标签时,根据该值获取共享首选项值,打印日,月,周。下面的代码用于获取共享的优先级ce值

String check_string= getSharedPreferences("Test", 0).getString("Check","day") 
if(check_string.equalsIgnorecase("day") 
{ 
// it is coming from day tab 
} 
else if (check_string.equalsIgnorecase("month") 
{ 
//it is coming from month tab 
}else if (check_string.equalsIgnorecase("week") 
{ 
//it is coming from week tab 
} 
+0

嗨Praveena。感谢您的回复 !我正在测试它。将结果返回给您。 – Vinoth

相关问题