Java 异常:http://hastebin.com/yiwecefifi.avrasm
我有一个对象,我称之为 Category,我的 fragment (CategoryFragment [extending ListFragment])需要访问它才能用内容填充 ListView。
通常情况下,这工作正常。应用启动,创建类别,并显示列表(因为我在 ViewPager 中有几个这样的列表)。
但是,在按下 Home 并稍作停留后,重新进入应用程序会导致崩溃。在我创建带有参数的构造函数之前,它会向我提供该类别的 NullPointerException。从那时起,我决定给它一个带有类别对象的构造函数,但现在它以这种方式失败了。
那么,我的问题是两件事之一:
- 如何通过我的 Activity 强制实例化 fragment ? 或
- 如何让 Android 保留我的对象?我假设它需要可序列化,但如何在再次创建 Fragment 时保持它可用?
此 Activity 的 list 数据如下:
<activity
android:launchMode="singleInstance"
android:name=".NewsActivity"
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout|uiMode"
android:label="@string/shortcut_name"
android:theme="@style/Theme.BgsuNews" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
最佳答案
This link in the docs about saving activity state应该有用。 fragment 也像 Activity 一样具有 onSave/RestoreInstanceState()
函数。您需要确定您的类别对象属于哪个类(Activity 或 Fragment),并通过 onSave/RestoreInstanceState() 中传递给您的
该类的函数。Bundle
保存和恢复您的类别数据
另一种存储正在进行的工作的方法是 this approach ,这对您的情况可能有用,也可能没有用。 (这就是我尽可能做的事情,onSaveInstanceState() 对其他一切都适用。)
关于java - 如何在 App Resume 或 Re-load Object 中通过 Activity 实例化 Fragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9006684/