Android小技巧-SharedPreferences實現設定介面
阿新 • • 發佈:2019-02-05
SharedPreferences的一個用途是實現設定介面,雖然現在的許大家都用它來儲存基本的鍵值對。
1.設定xml
/res/xml/preferences.xml
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:title="General options">
<CheckBoxPreference
android:key = "silent_mode"
android:defaultValue="false”用
android:title="Silent Mode"
android:summary="Mute all sounds from this app" />
<SwitchPreference
android:key="awesome_mode"
android:defaultValue="false"
android:switchTextOn="Yes"
android:switchTextOff=" No"
android:title="Awesome mode™"
android:summary="Enable the Awesome Mode™ feature"/>
<EditTextPreference
android:key="custom_storage"
android:defaultValue="/sdcard/data/"
android:title="Custom storage location"
android:summary=" Enter the directory path where you want data to be saved. If it does not exist, it will be created."
android:dialogTitle="Enter directory path (eg. /sdcard/data/ )"/>
</PreferenceCategory>
</PreferenceScreen>
以上定義了設定介面的可選項. 另外的一些可選項可以在Android官方文件檢視。
2.實現Activity
粗暴的程式碼如下
package com.example.preferences;
import android.preference.PreferenceActivity;
import android.os.Bundle;
public class PreferencesActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
是不是很簡單
3.使用PreferenceActivity
啟動PreferenceActivity
Intent i = new Intent(this, PreferencesActivity.class);
startActivity(i);
另外不要忘記了在Manifest檔案裡面註冊
4.獲取PreferenceActivity裡面的值
粗暴的程式碼
//set the default values we defined in the XML
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
//get the values of the settings options
boolean silentMode = preferences.getBoolean("silent_mode", false);
boolean awesomeMode = preferences.getBoolean("awesome_mode", false);
String string = preferences.getString("custom_storage", "");
是不是很簡單~