0

我今天在我的应用程序中检测到一个错误:当用户单击我的列表视图中的某个项目时,它会启动一个包含该项目详细信息的新片段。但是当用户在这个片段中时,如果他改变设备的方向,我的第一个类(获取我的列表视图)的 onCreate 方法被调用,应用程序崩溃了。

我想知道是否可以获得前一个片段的名称,以便在我的 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);
}
4

1 回答 1

0

我认为不可能在创建 Fragment 对象的新实例时获取前一个片段的名称。

如果我在您尝试做的事情上是正确的,您需要以某种方式存储您正在为其显示数据的对象,以便在Fragment重新创建时您可以检索所需的对象。一种方法是保留对象的 ID 或唯一属性,SharedPreferences然后在从某处的单例重新加载时重新获取其数据。

基本上,您可能需要更改检索数据的方式或从原始开口传递它,Fragment以便在第二个Fragment被破坏时可以再次检索它。

于 2013-08-28T11:23:05.550 回答