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

本文参考简书博客:《这才是Android设置界面的正确做法👌👌👌》写成,在其基础上删改并增加了一些内容。建议新窗口打开原文,在本文讲述不清楚的地方参考原文去寻找答案。
其实设置界面,不需要自己去一个一个选项地去做。Android为我们提供了一些封装好的东西,那就是基于
SharedPreferences的PreferenceActivity
<?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.
获取设置内容
// 由于PreferenceScreen基于SharedPreferences,所以他的调用方法与是相似的String DefaultUrl = PreferenceManager.getDefaultSharedPreferences(this) .getString("DefaultUrl", ""); // 此处的getString可视需要改变为getAll, getBoolean等(具体请查找SharedPreferences相关资料)
最后记得在manifest中注册这个Activity
<activity android:name=".你的Java文件的文件名"/>
PreferenceScree表明这是一个设置页面。PreferenceCategory可以用来区分不同类型的选项,可以设置一个title属性作为小标题。
这里转载原文的解释
支持类型
Preference : 普通选项EditTextPreference : 点击后弹出编辑框窗口的选项SwitchPreference : 开关选项RingtonePreference : 打开内容提供CheckBoxPreference : 带复选按钮ListPreference : 复合的单选按钮MultiSelectListPreference : 复合的复选按钮
支持属性
key :最多的属性,因为Preference这个数据的存取就是使用SharedPreferences来实现的。所以保存时需要一个key的。summary :小标题或者叫做简述,一般是用于对选项的简要说明。summaryOff :具有开关属性的选项关闭时的summarysummaryOn :具有开关属性的选项打开时的summarytitle :选项的标题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.获取设置内容
// 由于PreferenceScreen基于SharedPreferences,所以他的调用方法与是相似的String DefaultUrl = PreferenceManager.getDefaultSharedPreferences(this) .getString("DefaultUrl", ""); // 此处的getString可视需要改变为getAll, getBoolean等(具体请查找SharedPreferences相关资料)最后记得在manifest中注册这个Activity
<activity android:name=".你的Java文件的文件名"/>
没有评论:
发表评论