这才是Android设置界面的正确做法👌👌👌
话不多说,先上效果图

本文参考简书博客:《这才是Android设置界面的正确做法》一文写成,在其基础上删改并增加了一些内容。建议新窗口打开原文,在本文讲述不清楚的地方参考原文去寻找答案。
其实设置界面,不需要自己去一个一个选项地去做。Android为我们提供了一些封装好的东西,那就是基于
SharedPreferences的PreferenceActivity
首先在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设置界面的正确做法👌👌👌的更多相关文章
- Xamarin Android设置界面提示类型错误
Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at ‘padding’ with value ’10’)Android界面属性的长度和 ...
- Android 设置界面的圆角选项
请先看一个图: 像这种界面的设计,其实是这样的:整体为一个LinearLayout,一个一个排下去,每一个点击项都是一个RelativeLayout(要为其设置clickable为true),分为左右 ...
- Android调用系统自带的设置界面
Android有很多系统自带的设置界面,如设置声音,设置网络等. 在开发中可以调用这些系统自带的设置界面. 点击以下列表中的选项,就可以调出相应的系统自带的设置界面. 如点击“无线和网络设置”,可以调 ...
- android判断当前网络状态及跳转到设置界面
今天,想做这个跳转到网络设置界面, 刚开始用 intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS); 不料老是出现settings.Wirele ...
- Android常用控件之Fragment仿Android4.0设置界面
Fragment是Android3.0新增的概念,是碎片的意思,它和Activity很相像,用来在一个Activity中描述一些行为或部分用户界面:使用多个Fragment可以在一个单独的Activi ...
- Android开发——设置界面的创建
前言: 最近忙着搞项目,难得有时间,便来整理搞项目中学习到的知识 使用之前,先介绍一下android这种的五种数据储存方式,分别为文件储存,SharePrefence,SQL,使用ContentPro ...
- 安卓工作室 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 ...
- Android物联网应用程序开发(智慧城市)—— 环境状态值范围设置界面开发
效果图: 代码: 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- Android 打开设置界面或者WiFi连接界面
1.使用APP打开系统的设置界面或者WiFi连接界面 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网 ...
随机推荐
- Django之ORM执行原生sql语句
django中的ORM提供的操作功能有限,在模型提供的查询API不能满足实际工作需要时,可以在ORM中直接执行原生sql语句. Django 提供两种方法使用原生SQL进行查询:一种是使用raw()方 ...
- ORA-12519,TNS:no appropriate service handler found的问题 超过连接数
http://www.2cto.com/database/201205/133542.html ORA-12519,TNS:no appropriate service handler found的问 ...
- Keyboard Shortcuts Reference
Sublime Text 3快捷键 Ctrl + Shift + P 打开命令面板 Ctrl + P 搜索项目中的文件 Ctrl + G 跳到第几行 Ctrl + W 关闭当前打开文件 Ctrl + ...
- byte值的问题
byte值的问题 byte b1 = 127; byte b2 = (byte)128; //-128 byte b3 = (byte)129; //-127 byte b4 = (byte)130; ...
- 面向对象案例 - 学生信息管理系统V1.0
学生管理系统项目[所有知识点整合] 1. 学生管理系统项目 尝试完成以下功能 实体类: 学生类: id, 姓名,年龄,性别,成绩 需要使用数组保存学生信息 Student[] allStu 需要完成的 ...
- Java工作流引擎的测试容器-功能-使用方法-注意事项
工作流引擎的测试容器-功能-使用方法-注意事项 关键字 Ccbpm, ccflow,jflow,工作流引擎,工作流引擎测试容器,表单引擎 功能说明 工作流的测试容器是为了解决手工模拟人工登录模式下测试 ...
- [工具推荐]002.SoftOrbits Sketch Drawer使用教程
SoftOrbits Sketch Drawer是一款简单易用的照片素描化软件,内置多种预设方案以及丰富的自定义细节. 只需要一次轻轻的鼠标点击,就可以帮助你迅速的将家人的照片转换为黑白或者彩色的素描 ...
- SpringBoot—自定义线程池及并发定时任务模板
介绍 在项目开发中,经常遇到定时任务,今天通过自定义多线程池总结一下SpringBoot默认实现的定时任务机制. 定时任务模板 pom依赖 <dependencies> <dep ...
- 域对象的作用范围 & 请求的转发和重定向
1. 和属性相关的方法: ①. 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name): ...
- 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 ...