话不多说,先上效果图

本文参考简书博客:《这才是Android设置界面的正确做法》一文写成,在其基础上删改并增加了一些内容。建议新窗口打开原文,在本文讲述不清楚的地方参考原文去寻找答案。

其实设置界面,不需要自己去一个一个选项地去做。Android为我们提供了一些封装好的东西,那就是基于SharedPreferencesPreferenceActivity

首先在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属性作为小标题。

这里转载原文的解释

支持类型

Preference : 普通选项

EditTextPreference : 点击后弹出编辑框窗口的选项

SwitchPreference : 开关选项

RingtonePreference : 打开内容提供

CheckBoxPreference : 带复选按钮

ListPreference : 复合的单选按钮

MultiSelectListPreference : 复合的复选按钮

支持属性

key :最多的属性,因为Preference这个数据的存取就是使用SharedPreferences来实现的。所以保存时需要一个key的。

summary :小标题或者叫做简述,一般是用于对选项的简要说明。

summaryOff :具有开关属性的选项关闭时的summary

summaryOn :具有开关属性的选项打开时的summary

title :选项的标题

dialogTitle :弹出消息框的标题

dialogMessage :弹出的消息框的内容,会把MultiSelectListPreference和ListPreference的选项覆盖

layout :选项的布局(支持自定义)

然后在放置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文件的文件名"/>

最新文章

  1. spring security 3.2 配置详解(结合数据库)
  2. ios NSURLSession completeHandler默认调用quque
  3. 新手不了解Xcode和mac系统可能犯得错误和我的建议
  4. spring_boot打jar包及打包错误的解决方法
  5. 3D位置语音,引领吃鸡游戏体验升级
  6. freemarker写select组件报错总结(六)
  7. 浅析Unity中的Enlighten与混合光照
  8. canvas---HTML5新特性
  9. 下拉列表 通过option 改变div的内容
  10. Net-SNMP V3协议 安装配置笔记(CentOS 6.3/5.6)
  11. mybatis,genarate自动生成代码
  12. CentOS 安装 nexus (maven 私服)
  13. 【转载】Ajax JS 跨域请求
  14. sublime在混杂的log数据中提取你想要的内容
  15. nginx 二级域名跳转
  16. Maven profile 打包分环境加载不同的资源文件
  17. java开源项目jremoting
  18. C#秒转换小时
  19. ruby各种循环输出数组元素
  20. GCC中文错误提示

热门文章

  1. day04:购物车的练习(20170216)
  2. docker 学习(一)
  3. js动态添加iframe,自适应页面宽高
  4. Floyd&#39;s Triangle
  5. Maven——pom.xml文件报错:Missing artifact:jar包
  6. 官网下载Java连接MySql驱动jar包
  7. php 序列化
  8. CSS基础选择器总结
  9. [Objective-C] 017_UI篇_UIView(中)
  10. [SD.TEAM语录]AC语录