我有一个PreferencesActivity
,显示了一个带有复选框的preferences.xml
。
preferences.xml
:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Keywords">
<CheckBoxPreference android:key="Essen"
android:title="Essen"
android:selectable="true"
android:enabled="true"
android:persistent="false">
</CheckBoxPreference>
<CheckBoxPreference android:key="Kleidung"
android:title="Kleidung"
android:selectable="true"
android:enabled="true"
android:persistent="false">
</CheckBoxPreference>
</PreferenceCategory>
</PreferenceScreen>
PreferencesActivity:
public class PreferencesViewController extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
现在在另一个
ListActivity
中,我想展示所有选中复选框的键/标题。我尝试使用以下方式访问首选项:SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
或者
SharedPreferences prefs = getSharedPreferences("mypackage_preferences", 0);
但是两者都不起作用。
当我调用 prefs.getAll().size()
时,结果为0。
我可以使用 getPreferenceScreen().getPreference(i).…
访问键/标题,但它只能从 PreferenceActivity
中访问,而无法从其他 Activity
中访问。
有人有解决此问题的方案吗?
getBaseContext()
? - Mr_and_Mrs_D