1
我使用this庫創建我的PreferenceActivity
。它迄今爲止工作得很好,但我無法在我的偏好設置上設置任何聽衆。無法使用統一首選項保留我的首選項
那我Activity
看起來像:
public class PrefActivity extends UnifiedSherlockPreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
setHeaderRes(R.xml.preference_headers);
// Set desired preference file and mode (optional)
setSharedPreferencesMode(Context.MODE_PRIVATE);
super.onCreate(savedInstanceState);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Preference p = (Preference)findPreference("deleteSavedSearches");
p.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
//code for what you want it to do
return true;
}
});
}
}
這是我PreferenceScreen:
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<Preference
android:key="deleteSavedSearches"
android:summary="Gespeicherte Suchen löschen"
android:title="Gespeicherte Suchen löschen" />
</PreferenceScreen>
而這些都是我的頭:
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:unified="http://schemas.android.com/apk/res-auto" >
<!--
/*
** Header definitions are identical to android:* except for preferenceRes which should be a reference to a preference xml file
** Unlike the native headers these are also used for building the single pane version.
*/
-->
<header
unified:fragment="com.example.skelett.PrefActivity$GeneralPreferenceFragment"
unified:preferenceRes="@xml/pref_country"
unified:title="Land" />
<header
unified:fragment="com.example.skelett.PrefActivity$GeneralPreferenceFragment"
unified:preferenceRes="@xml/pref_data"
unified:title="Daten" />
</preference-headers>
在這種情況下,p
是null
。 getPreferenceScreen()
也總是會返回null
。我在首選項xml中設置了我的密鑰。我錯過了什麼?
其中u被設置SharedPreferences名'deleteSavedSearches'? – 2013-05-02 13:16:00
已編輯,因爲您可以看到已設置密鑰。 – FWeigl 2013-05-02 13:18:19