рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ (рдФрд░ рди рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ - рдЗрд╕рдХреЗ рдмрд╛рдж рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ) ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдирдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ - рдЖрдк Res / xml рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд░реАрдпрддрд╛рдПрдБред Xml рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдХреЛрдб рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╡рд░реАрдпрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред xml рдлрд╝рд╛рдЗрд▓ред
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрдЗрдЯрдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдПрдВрдбреНрд░реЙрдЗрдб: рдХреБрдВрдЬреА - рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдирд╛рдо, рдЖрдк рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- Android: рд╢реАрд░реНрд╖рдХ - рд╕реЗрдЯрд┐рдВрдЧ рдЖрдЗрдЯрдо рдХрд╛ рд╢реАрд░реНрд╖рдХ
- Android: рд╕рд╛рд░рд╛рдВрд╢ - рд╕реЗрдЯрд┐рдВрдЧ рдЖрдЗрдЯрдо рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
- Android: defaultValue - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрдЗрдЯрдо рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
- CheckBoxPreference рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪреЗрдХрдмреЙрдХреНрд╕ рд╣реИ рдЬреЛ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрд╛рддрд╛ рд╣реИред
- ListPreference - рд░реЗрдбрд┐рдпреЛ рдмрдЯрди (рд░реЗрдбрд┐рдпреЛрдЧреНрд░реБрдк) рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб: рдПрдВрдЯреНрд░реАрдЬ рд░реЗрд╕ / рдорд╛рди / arrays.xml , рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ : рдПрдВрдЯреНрд░реЗрдВрд╕ рд╕рд╛рдЗрди рдХреЗ рд╕рд╛рде рдПрдХ рдРрд░реЗ рдореЗрдВ рдПрдВрдЯреНрд░реАрд╡реНрдпреВрд▓реНрд╕ ред
- EditTextPreference - рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
- рд░рд┐рдВрдЧреЛрдирдкреНрд░реЗрд╢рди - рд░рд┐рдВрдЧрдЯреЛрди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рдХрд╛ рдПрдХ рд╕рдореВрд╣ред
- рд╡рд░реАрдпрддрд╛ - рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдЬреЛ рдПрдХ рдмрдЯрди рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред
- рд╡рд░реАрдпрддрд╛ рд╕реНрдХреНрд░реАрди - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░реАрдиред рдЬрдм рдПрдХ рд╡рд░реАрдпрддрд╛рд╕реНрдХреНрд░реАрди рджреВрд╕рд░реЗ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╣реИ, рддреЛ рдПрдХ рдирдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдХреНрд░реАрди рдЦреБрд▓рддреА рд╣реИред
- рд╡рд░реАрдпрддрд╛ рд╢реНрд░реЗрдгреА - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рд╢реНрд░реЗрдгреАред
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдХреНрд░реАрди
| EditTextPreference
|
ListPreference
| RingtonePreference
|
PreferenceScreen
|
рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдирд┐рдореНрди рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдП рдЧрдП рдереЗред xml :
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="First Category"> <CheckBoxPreference android:title="Checkbox Preference" android:defaultValue="false" android:summary="This preference can be true or false" android:key="checkboxPref" /> <ListPreference android:title="List Preference" android:summary="This preference allows to select an item in a array" 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:summary="This allows you to enter a string" android:defaultValue="Nothing" android:title="Edit This Text" android:key="editTextPref" /> <RingtonePreference android:name="Ringtone Preference" android:summary="Select a ringtone" android:title="Ringtones" android:key="ringtonePref" /> <PreferenceScreen android:key="SecondPrefScreen" android:title="Second PreferenceScreen" android:summary="This is a second PreferenceScreen"> <EditTextPreference android:name="An other EditText Preference" android:summary="This is a preference in the second PreferenceScreen" android:title="Edit text" android:key="SecondEditTextPref" /> </PreferenceScreen> <Preference android:title="Custom Preference" android:summary="This works almost like a button" android:key="customPref" /> </PreferenceCategory> </PreferenceScreen>
Android: рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдФрд░ Android: entryValues тАЛтАЛрдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реВрдЪреА рдореЗрдВ рдХреНрд░рдорд╢рдГ @ рд╕рд░рдгреА / listArray рдФрд░ @ array / listValues тАЛтАЛрдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИрдВред рдорд╛рдиреЛрдВ рдХреЛ Res / рдорд╛рди / arrays.xml рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="listArray"> <item>Number 1</item> <item>Number 2</item> <item>Number 3</item> <item>Number 4</item> </string-array> <string-array name="listValues"> <item>1</item> <item>2</item> <item>3</item> <item>4</item> </string-array> </resources>
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд░реАрдпрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЧрддрд┐рд╡рд┐рдзрд┐ рдЙрджрд╛рд╣рд░рдг:
package org.kaloer.preferenceexample; 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; } }); } }
рдФрд░ рдЖрдк рд╣рдорд╛рд░реА рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button prefBtn = (Button) findViewById(R.id.prefButton); prefBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent settingsActivity = new Intent(getBaseContext(), Preferences.class); startActivity(settingsActivity); } }); }
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо getPrefs () рд╡рд┐рдзрд┐ рдХреЛ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рдЬрд┐рд╕реЗ рдСрдирд╕реНрдЯрд╛рд░реНрдЯ () рдЗрд╡реЗрдВрдЯ рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдСрдирд╕реНрдЯрд╛рд░реНрдЯ () , рдФрд░ рдСрдирдХреНрд░рд┐рдПрдЯ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рд╡реЗ рдЬреЛ рдЧреНрд▓рд╛рдиреЙрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдереЗред рд╣рдорд╛рд░реА getPrefs () рд╡рд┐рдзрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
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", ""); }
рдФрд░ рдЕрдВрдд рдореЗрдВ, Androidmanifest.xml рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдмрдирд╛рдИ рдЧрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реНрдХреНрд░реАрди рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "set_preferences" рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ"ред
<activity android:name=".Preferences" android:label="@string/set_preferences"> </activity>
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ:
рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕реНрдХреНрд░реАрди
| рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╡рд┐рдзрд┐
|