O que é:
Preferences é a tela de configuração (settings) do seu app, nessa activitiy que você terá todas as opções do seu aplicativo.
Dentro de uma PreferenceActivity você poderá ter 7 opções de componentes para usar:
-CheckBoxPreference: Como se fosse um checkbox normal, retorna true ou false.
-ListPreference: Mostra uma lista para o usuário selecionar 1 item. A propriedade android:entries tem que apontar para um array localizado no res/values/arrays.xml, e o android:entryValues é o array com os itens retornados.
-EditTextPreference: Mostra um dialog com um edittext.
-RingtonePreference: Como se fosse um ListPreference mas com os valores dos ringtones.
-Preference: Como se fosse um botão.
-PreferenceScreen: Abre uma nova tela de preferences.
-PreferenceCategory: Serve para separar as preferências em categorias.
Como criar uma PreferenceActivitiy:
Primeiro de tudo precisamos criar na pasta res/xml um arquivo chamado preference.xml:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="1 Categoria"> <CheckBoxPreference android:title="Checkbox Preference" android:defaultValue="false" android:key="checkboxPref" /> <ListPreference android:title="List Preference" android:key="listPref" android:defaultValue="digiGreen" android:entries="@array/listArray" android:entryValues="@array/listValues" /> </PreferenceCategory> <PreferenceCategory android:title="Second Category"> <EditTextPreference android:name="EditText Preference" android:defaultValue="Nothing" android:title="Edit This Text" android:key="editTextPref" /> <RingtonePreference android:name="Ringtone Preference" android:title="Ringtones" android:key="ringtonePref" /> <PreferenceScreen android:key="SecondPrefScreen" android:title="Second PreferenceScreen" <EditTextPreference android:name="An other EditText Preference" android:title="Edit text" android:key="SecondEditTextPref" /> </PreferenceScreen> <Preference android:title="Custom Preference" android:key="customPref" /> </PreferenceCategory> </PreferenceScreen>
Agora precisamos criar nossa classe que extenderá da PreferenceActivity:
import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.Preference.OnPreferenceClickListener; import android.widget.Toast; public class Preferences extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); // Get the custom preference Preference customPref = (Preference) findPreference("customPref"); customPref .setOnPreferenceClickListener(new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { Toast.makeText(getBaseContext(), "The custom preference has been clicked", Toast.LENGTH_LONG).show(); SharedPreferences customSharedPreference = getSharedPreferences( "myCustomSharedPrefs", Activity.MODE_PRIVATE); SharedPreferences.Editor editor = customSharedPreference .edit(); editor.putString("myCustomPref", "The preference has been clicked"); editor.commit(); return true; } }); } }
Para pegarmos os valores definidos na Preference, devemos criar um método getPrefs() que pode ser chamado no onStart(). Ele deve ser assim:
boolean CheckboxPreference; String ListPreference; String editTextPreference; String ringtonePreference; String secondEditTextPreference; String customPref; private void getPrefs() { // Get the xml/preferences.xml preferences SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); CheckboxPreference = prefs.getBoolean("checkboxPref", true); ListPreference = prefs.getString("listPref", "nr1"); editTextPreference = prefs.getString("editTextPref", "Nothing has been entered"); ringtonePreference = prefs.getString("ringtonePref", "DEFAULT_RINGTONE_URI"); secondEditTextPreference = prefs.getString("SecondEditTextPref", "Nothing has been entered"); // Get the custom preference SharedPreferences mySharedPreferences = getSharedPreferences( "myCustomSharedPrefs", Activity.MODE_PRIVATE); customPref = mySharedPreferences.getString("myCusomPref", ""); }
<activity android:name=".Preferences" android:label="@string/set_preferences"> </activity>
mt show ja ta salvando ne . da hs
ResponderExcluircopy/paste de um exemplo gringo. palha
ResponderExcluir