我有一个应用程序,每当我通过主页硬件按钮退出应用程序时,它应该返回到应用程序所处的最后状态。但是,当我再次启动应用程序时,应用程序显示一个只有我的标题栏的白屏。当我单击标题栏的按钮时,应用程序崩溃,IllegalStateException
应用程序无法找到单击按钮的方法。
我目前正在使用 Sherlocks Fragment 实现,其中标题栏是一个操作栏。我也在使用 HTC Rhyme,2.3 版(姜饼)。以下是在我的主应用程序中添加片段的代码。
在活动的 onCreate 方法中添加片段的代码:
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
Bundle bMain = getIntent().getExtras();
String statusCheck = "";
if (bMain != null) {
statusCheck = bMain.getString("statusCheck");
}
if (statusCheck.equals("web")) {
MyWebViewFragment webfrag = new MyWebViewFragment();
trans.add(R.id.container,webfrag, "WebViewFragment");
} else if(statusCheck.equals("traveloguelist")) {
MyTravelogueListFragment travelfrag = new MyTravelogueListFragment();
trans.add(R.id.container,travelfrag, "TravelogueListFragment");
}
trans.commit();
这是我更改片段时的代码:
MyTravelogueListFragment travelfrag = new MyTravelogueListFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.container, travelfrag).addToBackStack(null).commit();
[编辑]
经过大量阅读和运行后,我意识到主要问题是在恢复应用程序后,实际上又创建了活动。因此,我传入的一些参数没有注册,导致显示错误。我认为这是导致这种情况发生的错误:
Previously focused view reported id "myresID" during save, but can't be found during restore.
但是,不知道你是如何强制应用程序记住fragment之前的状态的?或者有没有其他方法可以解决这个问题?
我仍然很纠结这个问题。如果有人可以帮助我,我将不胜感激!