android - 无法在 ActivityGroup 持有的 PreferenceScreen 中加载 ListPreference 对话框

标签 android listpreference

我在某个选项卡上实现了一个 ActivityGroup。此 ActivityGroup 中的屏幕之一是 PreferenceScreen,其中包含一个 ListPreference

单击 ListPreference 时会引发异常,并且无法加载对话框。这是异常的完整堆栈跟踪:-

05-08 12:05:31.545: E/AndroidRuntime(247): Uncaught handler: thread main exiting due to uncaught exception
05-08 12:05:31.585: E/AndroidRuntime(247):  android.view.WindowManager$BadTokenException: Unable to add window -- token    android.app.LocalActivityManager$LocalActivityRecord@44ec8ac8 is not valid; is your activity running?
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.view.ViewRoot.setView(ViewRoot.java:468)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.view.Window$LocalWindowManager.addView(Window.java:424)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.app.Dialog.show(Dialog.java:239)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.preference.DialogPreference.showDialog(DialogPreference.java:307)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.preference.DialogPreference.onClick(DialogPreference.java:265)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.preference.Preference.performClick(Preference.java:811)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:190)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.widget.AdapterView.performItemClick(AdapterView.java:284)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.widget.ListView.performItemClick(ListView.java:3285)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.os.Handler.handleCallback(Handler.java:587)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.os.Looper.loop(Looper.java:123)
05-08 12:05:31.585: E/AndroidRuntime(247):  at android.app.ActivityThread.main(ActivityThread.java:4363)
05-08 12:05:31.585: E/AndroidRuntime(247):  at java.lang.reflect.Method.invokeNative(Native Method)
05-08 12:05:31.585: E/AndroidRuntime(247):  at java.lang.reflect.Method.invoke(Method.java:521)
05-08 12:05:31.585: E/AndroidRuntime(247):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-08 12:05:31.585: E/AndroidRuntime(247):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-08 12:05:31.585: E/AndroidRuntime(247):  at dalvik.system.NativeStart.main(Native Method)

我也尝试过实现 DialogPreference 而不是 ListPreference,但它仍然以同样的方式崩溃。

在将 Activity 添加到 ActivityGroup 之前它运行良好。

最佳答案

通过将父上下文设置为列表首选项解决了这个问题。

谢谢。

关于android - 无法在 ActivityGroup 持有的 PreferenceScreen 中加载 ListPreference 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494026/

相关文章:

安卓动画库?

android - 如何创建一个 ListPreference 对话框以在非偏好 Activity 中显示

java - 如何访问 SharedPreferences 字段?

java - 如何在 .java 代码中启用禁用的(在 xml 中)ListPreference 对象?

android - 如何在用户更改 ListPreference 值之前在 SettingsFragment 中显示确认消息?

android - 如何解决 java.lang.NoClassDefFoundError 异常?

android - 如何在android中分页gridviews?

java - 从 ListPreference 获取 EntryValue 并设置更改

java - ListView 的 NullPointerException

android - list 合并失败 : Referenced navigation file not found