我今天在我的应用中检测到一个错误:当用户在我的列表视图中的某个项目上时,它会启动一个包含此项目详细信息的新片段。但是当用户在这个片段中时,如果他改变了设备的方向,则调用我的第一个类的onCreate方法(获取我的listview),并且应用程序崩溃。
我想知道是否可以获取上一个片段的名称,以便在我的onCreate方法中添加如下所示的测试:
if (!fragmentName.equals("common")){
Log.d("INFO", "Do nothing in this case, because user was in detail fragment before !"),
} else {
super.onCreate(savedInstanceState);
refreshList(true);
}
答案 0 :(得分:0)
我认为不可能获得前一个片段的名称,因为它创建了一个Fragment对象的新实例。
如果我对你要做的事情是正确的,你需要以某种方式存储你正在显示数据的对象,以便在重新创建Fragment
时,你可以检索所需的对象。一种方法是在SharedPreferences
中保留对象的ID或唯一属性,然后在从单个地方重新加载时重新获取其数据。
基本上,您可能需要更改检索数据的方式或将其从原始开头Fragment
传递,以便在第二个Fragment
被销毁时再次检索数据。