本文参考简书博客:《这才是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文件的文件名"/>