2011-12-01 53 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

相關問題