我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)
| 归档时间: |
|
| 查看次数: |
5435 次 |
| 最近记录: |