Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Android Entwicklung Android Preferences
Tag Cloud
Inhalt in Zahlen
  • Seiten: 192
  • Ordner: 83
  • Links: 42
 

Android Preferences

Einstellungen für eine Android App

Erstelle eine neue Class mit dem Namen "Preferences" und der Superclass "android.preference.PreferenceActivity"

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Preferences extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {       
super.onCreate(savedInstanceState);       
addPreferencesFromResource(R.xml.preferences);       
}
}

Jetzt brauchen wir noch eine neue Android XML resource "preferences.xml" vom Typ "PreferenceScreen". Hier kommen dann unsere Kategorien und Elemente rein:




<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:title="Settings"
android:key="settings"
>
<CheckBoxPreference
android:key="enable_sort"
android:summary="Enable or disable default sort"
android:title="Enable default sort"
android:defaultValue="true"
/>
<ListPreference
android:key="default_sort"
android:title="Default Sort"
android:summary="Define the sort"
android:entries="@array/sortEntrys"
android:entryValues="@array/sortValues"
android:defaultValue="a"
android:dependency="enable_sort"
/>
</PreferenceCategory>

<PreferenceCategory
android:key="names"
android:title="Names"
>
<EditTextPreference
android:key="surname"
android:title="Surname"
android:summary="You can type your surname"
android:dialogTitle="Edit surname"
android:dialogMessage="Provide your surname"   
/>
</PreferenceCategory>

<PreferenceCategory
android:key="database"
android:title="Database"
>
<Preference
android:key="import"
android:title="Import"
android:summary="Import database from sdcard"
/>
<Preference
android:key="export"
android:title="Export"
android:summary="Export database to sdcard"
/>
</PreferenceCategory>
</PreferenceScreen>

Die wichtigsten Elemente:

  • CheckBoxPreference = Eine CheckBox
  • EditTextPreference = Ein EditText
  • ListPreference = Eine Auswahlliste
  • Preference = Ein Textfeld

Nutzen wir ListPreferences, brauchen wir noch ein Array mit Daten. Falls noch nicht vorhanden, brauchen wir eine neue Android XML resource "arrays.xml" vom Typ "Values". Hier können wir dann ein "String Array" definieren:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="sortEntrys">
<item name="a">A -> Z</item>
<item name="z">Z -> A</item>
<item name="n">New -> Old</item>
<item name="o">Old -> New</item>
</string-array>

<string-array name="sortValues">
<item name="a">a</item>
<item name="z">z</item>
<item name="n">n</item>
<item name="o">o</item>
</string-array>
</resources>

 

In der onCreate-Methode kann jetzt ein ClickListener für ein Textfeld definiert werden:

Preference pref_import = (Preference) findPreference("import");
pref_import.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(), "Import ausgewählt",Toast.LENGTH_SHORT).show();
return true;
}
});

 

So kann dann später auf die Daten der Preferences zugegriffen werden:

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);

enable_sort = sharedPrefs.getBoolean("enable_sort", false);
default_sort = sharedPrefs.getString("default_sort", "a");
name = sharedPrefs.getString("name", "NULL");

 

 

Und so sieht es dann aus:
Preferences.png
Preferences


Preferences - CheckBoxPreferences.png
CheckBoxPreferences

 

Preferences - EditTextPreferences.png
EditTextPreferences

 

Preferences - ListPreferences.png
ListPreferences

Kommentieren

Sie können einen Kommentar abgeben, indem Sie das untenstehende Formular ausfüllen. Nur Text.

Frage: Wieviel ist eins + drei (Bitte eine Zahl als Ziffer schreiben)?
Ergebnis: