package de.boge.infosphere; import android.annotation.SuppressLint; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceManager; import com.actionbarsherlock.app.SherlockPreferenceActivity; import com.actionbarsherlock.view.MenuItem; @SuppressWarnings("deprecation") @SuppressLint("InlinedApi") public class SettingsActivity extends SherlockPreferenceActivity { /** * Lade die Einstellungen und ihre Werte und passe die ActionBar an */ @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); setupSimplePreferencesScreen(); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); //TODO: Einstellungen reinbringen (XML-Datei) und (wenn m�glich) Summary verkn�pfen } /** * L�dt die Einstellungen aus der XML-Datei */ private void setupSimplePreferencesScreen() { addPreferencesFromResource(R.xml.prefs); // Zeige die gew�hlte Einstellung als Summary des Eintrags an //bindPreferenceSummaryToValue(findPreference("gui_schriftgroe�e")); } /** * Helfer, der die gew�hlte Einstellung als Summary anzeigt * @param preference Gew�hlte Einstellung */ @SuppressWarnings("unused") private static void bindPreferenceSummaryToValue(Preference preference) { preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager.getDefaultSharedPreferences(preference.getContext()).getString(preference.getKey(), "")); } /** * Wartet auf �nderungen in den Einstellungen */ private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object value) { String stringValue = value.toString(); if (preference instanceof ListPreference) { ListPreference listPreference = (ListPreference) preference; int index = listPreference.findIndexOfValue(stringValue); preference.setSummary(index >= 0 ? listPreference.getEntries()[index] : null); } else { preference.setSummary(stringValue); } return true; } }; /** * Schlie�e diese Activity, sobald auf das Home-Icon geklickt wird (--> Zur�ck) */ @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { finish(); } return super.onOptionsItemSelected(item); } }