话不多说,先上效果图

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

这才是Android设置界面的正确做法👌👌👌的更多相关文章

  1. Xamarin Android设置界面提示类型错误

    Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at ‘padding’ with value ’10’)Android界面属性的长度和 ...

  2. Android 设置界面的圆角选项

    请先看一个图: 像这种界面的设计,其实是这样的:整体为一个LinearLayout,一个一个排下去,每一个点击项都是一个RelativeLayout(要为其设置clickable为true),分为左右 ...

  3. Android调用系统自带的设置界面

    Android有很多系统自带的设置界面,如设置声音,设置网络等. 在开发中可以调用这些系统自带的设置界面. 点击以下列表中的选项,就可以调出相应的系统自带的设置界面. 如点击“无线和网络设置”,可以调 ...

  4. android判断当前网络状态及跳转到设置界面

    今天,想做这个跳转到网络设置界面, 刚开始用 intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 不料老是出现settings.Wirele ...

  5. Android常用控件之Fragment仿Android4.0设置界面

    Fragment是Android3.0新增的概念,是碎片的意思,它和Activity很相像,用来在一个Activity中描述一些行为或部分用户界面:使用多个Fragment可以在一个单独的Activi ...

  6. Android开发——设置界面的创建

    前言: 最近忙着搞项目,难得有时间,便来整理搞项目中学习到的知识 使用之前,先介绍一下android这种的五种数据储存方式,分别为文件储存,SharePrefence,SQL,使用ContentPro ...

  7. 安卓工作室 android studio 汉化后,报错。 设置界面打不开。Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label

    安卓工作室 android studio 汉化后,报错. 设置界面打不开. Android studio has been sinified and reported wrong.The setup ...

  8. Android物联网应用程序开发(智慧城市)—— 环境状态值范围设置界面开发

    效果图: 代码: 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...

  9. Android 打开设置界面或者WiFi连接界面

    1.使用APP打开系统的设置界面或者WiFi连接界面 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网 ...

随机推荐

  1. Django之ORM执行原生sql语句

    django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方 ...

  2. ORA-12519,TNS:no appropriate service handler found的问题 超过连接数

    http://www.2cto.com/database/201205/133542.html ORA-12519,TNS:no appropriate service handler found的问 ...

  3. Keyboard Shortcuts Reference

    Sublime Text 3快捷键 Ctrl + Shift + P 打开命令面板 Ctrl + P 搜索项目中的文件 Ctrl + G 跳到第几行 Ctrl + W 关闭当前打开文件 Ctrl + ...

  4. byte值的问题

    byte值的问题 byte b1 = 127; byte b2 = (byte)128; //-128 byte b3 = (byte)129; //-127 byte b4 = (byte)130; ...

  5. 面向对象案例 - 学生信息管理系统V1.0

    学生管理系统项目[所有知识点整合] 1. 学生管理系统项目 尝试完成以下功能 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的 ...

  6. Java工作流引擎的测试容器-功能-使用方法-注意事项

    工作流引擎的测试容器-功能-使用方法-注意事项 关键字 Ccbpm, ccflow,jflow,工作流引擎,工作流引擎测试容器,表单引擎 功能说明 工作流的测试容器是为了解决手工模拟人工登录模式下测试 ...

  7. [工具推荐]002.SoftOrbits Sketch Drawer使用教程

    SoftOrbits Sketch Drawer是一款简单易用的照片素描化软件,内置多种预设方案以及丰富的自定义细节. 只需要一次轻轻的鼠标点击,就可以帮助你迅速的将家人的照片转换为黑白或者彩色的素描 ...

  8. SpringBoot—自定义线程池及并发定时任务模板

    介绍   在项目开发中,经常遇到定时任务,今天通过自定义多线程池总结一下SpringBoot默认实现的定时任务机制. 定时任务模板 pom依赖 <dependencies> <dep ...

  9. 域对象的作用范围 & 请求的转发和重定向

    1. 和属性相关的方法: ①. 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name): ...

  10. meavn项目由打包方式jar改为war报Cannot install Dynamic Web Module 2.5 facet. It is incompatibile with already installed facets: Utility Module. Please modify project configuration.处理方式

    找到  \项目名\.setting\文件夹下的   org.eclipse.wst.common.project.facet.core.xml  xml文件. 添加或修改 <installed ...