我有一个偏好活动,并注意到列表偏好在更改时不会设置默认值。
偏好具有这些基本动力
- 如果复选框 = 未选中 --> 列出首选项条目值 = x
- 如果复选框 = 勾选 --> 列出首选项条目值 = z
当应用程序首次运行时设置默认值,但是当我勾选复选框时,之后没有值适用。
代码:
public class QuickPrefsActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
View title =(View)getWindow().findViewById(android.R.id.title);
FrameLayout titlebar=(FrameLayout)title.getParent();
TextView txt = (TextView)titlebar.getChildAt(0);
txt.setGravity(Gravity.CENTER);
CheckBoxPreference chckbox = (CheckBoxPreference)
findPreference("french");
if (chckbox.isChecked()) {
ListPreference newsPref = (ListPreference)
findPreference("news_feed");
newsPref.setEntryValues(getResources().
getStringArray(R.array.newsfeedfr));
newsPref.setDefaultValue(1);
} else {
ListPreference news2Pref = (ListPreference)
findPreference("news_feed");
news2Pref.setEntryValues(getResources().
getStringArray(R.array.newsfeed));
news2Pref.setDefaultValue(1);
}
}
}