這纔是Android設置界面的正確作法

話很少說,先上效果圖

效果圖

本文參考簡書博客:《這纔是Android設置界面的正確作法👌👌👌》寫成,在其基礎上刪改並增長了一些內容。建議新窗口打開原文,在本文講述不清楚的地方參考原文去尋找答案。java

其實設置界面,不須要本身去一個一個選項地去作。Android爲咱們提供了一些封裝好的東西,那就是基於SharedPreferencesPreferenceActivityandroid

首先在res目錄下新建一個名爲「xml」的文件夾,新建preference.xml,名字能夠修改(這裏的代碼能夠參考原文,此處做了精簡)

<?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

而後在放置Java的目錄新建一個PreferenceSettings.java,名字能夠修改

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相關資料)

最後記得在manifest中註冊這個Activity

<activity android:name=".你的Java文件的文件名"/>
相關文章
相關標籤/搜索