我将描述我的问题。
我在我的Android应用中使用tabhost
,其中包含tree tabs
。第一个和第三个是"正常",这意味着 - 每个标签一个活动。
第二个标签与其他标签不同。我想在其中使用两个活动,并扩展ActivityGroup
。
使用案例:
用户点击第二个标签> SettingsActivity
已打开>用户保存的设置(按钮)> ActionActivity
已打开。
我使用此代码调用ActionActivity
:
Intent intent = new Intent(this, ActionActivity.class);
Window window = getLocalActivityManager().startActivity("activity_action", intent);
setContentView(window.getDecorView());
它有效。标签更改为ActionActivity
。
问题出在Java#onBackPressed()
方法上。我在SettingsActivity
抓住了它。我想从ActionActivity
返回Settings Activity
。
@Override
public void onBackPressed() {
LocalActivityManager manager = getLocalActivityManager();
Activity view = manager.getCurrentActivity();
if ((view instanceof ActionActivity)) {
Intent intent = new Intent(this, SettingsActivity.class);
replaceContentView("activity_settings", intent);
} else {
finish();
}
}
我无法在ActionActivity
中抓住此事件。
这种方法很糟糕,但只有一次。
用例:
SettingsActivity
> ActionActivity
> BackPressed> SettingsActivity
> ActionActivity
> BackPressed>应用程序正在关闭。
当我第一次调试if ((view instanceof ActionActivity))
时它会变为真,但是第二次它变为假,所以应用程序正在关闭。
你能帮助我吗?您知道如何解决它吗?
应用程序的用例应该是:
SettingsActivity
> ActionActivity
> BackPressed> SettingsActivity
> ActionActivity
> BackPressed> SettingsActivity
> ActionActivity
> BackPressed> SettingsActivity
>等
问候。