本文參考簡書博客:《這纔是Android設置界面的正確作法👌👌👌》寫成,在其基礎上刪改並增長了一些內容。建議新窗口打開原文,在本文講述不清楚的地方參考原文去尋找答案。java
其實設置界面,不須要本身去一個一個選項地去作。Android爲咱們提供了一些封裝好的東西,那就是基於
SharedPreferences
的PreferenceActivity
android
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="設置1"> <EditTextPreference android:key="Setting1" android:title="我是標題" android:summary="我是簡介" /> </PreferenceCategory> <PreferenceCategory android:title="設置2"> <SwitchPreference android:key="Setting2" android:checked="true" android:title="我是標題" android:summary="我是簡介" android:summaryOff="我是關閉選項時的summary" android:summaryOn="我是開啓選項時的summary" /> </PreferenceCategory> </PreferenceScreen>
PreferenceScree
代表這是一個設置頁面。
PreferenceCategory
能夠用來區分不一樣類型的選項,能夠設置一個title屬性做爲小標題。ide
Preference
: 普通選項
EditTextPreference
: 點擊後彈出編輯框窗口的選項
SwitchPreference
: 開關選項
RingtonePreference
: 打開內容提供
CheckBoxPreference
: 帶複選按鈕
ListPreference
: 複合的單選按鈕
MultiSelectListPreference
: 複合的複選按鈕佈局
key
:最多的屬性,由於Preference這個數據的存取就是使用SharedPreferences來實現的。因此保存時須要一個key的。
summary
:小標題或者叫作簡述,通常是用於對選項的簡要說明。
summaryOff
:具備開關屬性的選項關閉時的summary
summaryOn
:具備開關屬性的選項打開時的summary
title
:選項的標題
dialogTitle
:彈出消息框的標題
dialogMessage
:彈出的消息框的內容,會把MultiSelectListPreference和ListPreference的選項覆蓋
layout
:選項的佈局(支持自定義)this
package 你本身的包名; import android.os.Bundle; import android.preference.PreferenceActivity; public class PreferenceSettings extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.addPreferencesFromResource(R.xml.preference); // 若是剛剛的xml用了本身的文件名,此處記得修改 } }
// 因爲PreferenceScreen基於SharedPreferences,因此他的調用方法與是類似的 String DefaultUrl = PreferenceManager.getDefaultSharedPreferences(this) .getString("DefaultUrl", ""); // 此處的getString可視須要改變爲getAll, getBoolean等(具體請查找SharedPreferences相關資料)
<activity android:name=".你的Java文件的文件名"/>