Ich mache eine Android-Anwendung mit ActionBarSherlock
. Mein Problem besteht darin, Präferenz Bildschirm zu machen. Die onBuildHeader()
Methode an der SherlockPreferenceActivity
Klasse wird nerver genannt.Einstellungen Bildschirm mit ActionBar Sherlock
Dies ist mein Code
preference_headers.xml
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
android:fragment="package.fragments.MyPreferenceFragment"
android:icon="@drawable/bulle"
android:summary="An example of some preferences."
android:title="title" />
</preference-headers>
preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/options" >
<PreferenceCategory>
<SwitchPreference
android:id="@+id/cb_notif"
android:defaultValue="false"
android:key="com.vincent.HTC_Dev.pref.notif"
android:summaryOff="@string/notifications_off"
android:summaryOn="@string/notifications_on"
android:title="@string/notifications" />
</PreferenceCategory>
</PreferenceScreen>
MyPreferenceActivity
public class MyPreferenceActivity extends SherlockPreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
super.onBuildHeaders(target);
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
MyPreferenceFragment
public class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
}
}
'onBuildHeaders()' wird nur aufgerufen, wenn Sie auf API Level 11 oder höher laufen. Unter https://github.com/commonsguy/cw-omnibus/tree/master/Prefs/FragmentsBC finden Sie ein Beispiel für die Unterstützung von 'PreferenceFragment' in API Level 11+ und die klassischen Einstellungen in älteren Versionen von Android. – CommonsWare
OK vielen Dank! –
@CommonsWare Können Sie Ihren Kommentar als eine Antwort drehen, weil dies die höchste "unbeantwortete" Frage ist – rds