Мой PreferenceActivity
содержит вложенный PreferenceScreen
в другом PreferenceScreen
и я применяю тему к моему PrefenceActivity
это изменяет цвет фона. Однако, когда я открываю вложенный PreferenceScreen
Я получаю черный фон, и я не вижу опций.
Это происходит с андроидом 2.1, но этого не происходит с андроидом 1.6. Какие-либо идеи о том, как это может быть исправлено?
Я нашел способ сделать это, но это довольно хитрость.
Это мой 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>
А это мой код для класса, который расширяет 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;
}
});
}