在这里,我正在开发一个应用程序,其中第一个用户必须通过 facebook 登录。为此,有一个带有登录按钮的登录活动。成功登录后,用户移动到选项卡活动,比如 A。选项卡小部件中还有两个活动,比如活动 B 和 C。现在,我要做的是当用户从活动 C 按下返回按钮时,用户应该移动到活动 B 和当用户从活动 B 按下返回按钮时,用户应该移动到活动 A。现在,当用户从活动 A 按下返回按钮时,用户应该移动到主屏幕或退出应用程序。现在再次,当用户按下应用程序图标启动应用程序时,用户应该直接移动到选项卡活动 A,而不是在具有登录按钮的登录活动上。我为注销创建了菜单按钮。当用户注销时,应该再次移动到登录活动......需要做什么?
2 回答
首先,如果用户登录,则保存一些设置,SharedPreference
如果用户登录则检查设置,然后只需绕过Activity
A
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.
如果用户已注销,则只需从SharedPreference
. 对于后退按钮按下,您应该通过覆盖onBackPressed()
功能覆盖后退按钮按下。在Activity
C 中onBackPressed()
你应该调用
sharedPrefrence.putString("selected_tab", 1);
开始您的标签活动并在您的标签活动中your_tab_host.setCurrentTab(sharedPreferences.getString("selected_tab")
当在Activity
B inonBackPressed()
你应该打电话
sharedPrefrence.putString("selected_tab", 0);
开始您的标签活动并在您的标签活动中
your_tab_host.setCurrentTab(sharedPreferences.getString("selected_tab")
最后当 In Activity
A inonBackPressed()
那么你应该打电话finish()
在我的选项卡活动(TabViewLayout)中,我创建了方法,
public void switchTabBar(int tab) {
tabHost.setCurrentTab(tab);
}
@Override
public void onBackPressed() {
// Called by children
TabViewLayout.this.finish();
}
在我的活动 A 中,
@Override
public void onBackPressed() {
this.getParent().onBackPressed();
}
在我的活动 B 中,
@Override
public void onBackPressed() {
TabViewLayout parentTab = (TabViewLayout) this.getParent();
parentTab.switchTabBar(0);
}
在我的活动 C(最终活动)中,
@Override
public void onBackPressed() {
TabViewLayout parentTab = (TabViewLayout) this.getParent();
parentTab.switchTabBar(1);
}