需要根据选定的选项卡显示活动
问题描述:
我会尝试尽可能简短地解释我的问题。我有4个选项卡,“月”,“周”,“日”,“今日”。这些日子都是单独的活动。当用户点击“今日”标签时,该活动必须先检查先前的活动,然后相应地显示当前日期。例如。如果用户之前点击过DAY,然后点击TODAY,则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;
}
}
答
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
}
嗨Praveena。感谢您的回复 !我正在测试它。将结果返回给您。 – Vinoth