内部首选屏幕中的黑屏

ran*_*vee 10 android

PreferenceActivity包含一个嵌套PreferenceScreen在另一个PreferenceScreen,我正在应用一个主题,我PrefenceActivity改变了背景颜色.但是,当我打开嵌套时,PreferenceScreen我得到一个黑色的背景,我看不到选项.

这种情况发生在Android 2.1中,但它不会发生在Android 1.6上.关于如何纠正这个问题的任何想法?

Mac*_*rse 13

我找到了一种方法来做到这一点,但它非常黑客.

这是我的 prefs.xml

<PreferenceCategory
    android:title="@string/hello">

    <CheckBoxPreference
        key="pref_update_key"
        android:title="@string/hello"
        android:summaryOn="@string/hello"
        android:summaryOff="@string/hello"
        android:persistent="true"
        android:defaultValue="false" />

</PreferenceCategory>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="pref_second_preferencescreen_key" android:title="@string/hello">
        <CheckBoxPreference
        key="pref_update_key"
        android:title="@string/hello"
        android:summaryOn="@string/hello"
        android:summaryOff="@string/hello"
        android:persistent="true"
        android:defaultValue="false" />
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

这是我的课程代码 extends PreferenceActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.layout.prefs);
    getWindow().setBackgroundDrawableResource(R.drawable.background);

    PreferenceScreen b = (PreferenceScreen) findPreference("pref_second_preferencescreen_key");
    b.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            PreferenceScreen a = (PreferenceScreen) preference;
            a.getDialog().getWindow().setBackgroundDrawableResource(R.drawable.background);
            return false;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)