Android学习笔记
Android 开发者基础知识 (Java) —— Google Developers 培训团队
文章目录
第3单元 在后台运行
第9课 保存用户数据
92. Shared preferences && App settings
这个其实笔者在之前也有了解到过,首选项的各种应用,这里就简单看下官方课程的小结。
92.1 SharedPreferences小结
- 该类
SharedPreferences
允许应用程序将少量原始数据存储为键值对。 - 共享偏好在同一应用程序的不同用户会话中持续存在。
- 要写入共享首选项,请获取一个
SharedPreferences.Editor
对象。 - 使用
SharedPreferences.Editor
对象中的各种“放置”方法,例如putInt()
orputString()
,将数据放入具有键和值的共享首选项中。 - 使用
SharedPreferences
对象中的各种“get”方法,例如getInt()
orgetString()
,通过键从共享首选项中获取数据。 - 使用对象中的
clear()
方法SharedPreferences.Editor
来删除存储在首选项中的所有数据。 - 使用对象中的
apply()
方法SharedPreferences.Editor
将更改保存到首选项文件。
92.2 App settings应用设置
你会做什么
- 创建一个在选项菜单中包含设置的应用程序。
- 添加设置选项切换开关。
- 添加代码以设置设置的默认值,并在更改后访问设置值。
- 使用和自定义 Android Studio 设置活动模板。
项目地址:https://github.com/google-developer-training/android-fundamentals-apps-v2/tree/master/AppWithSettings
92.3 应用设置小结
用户希望通过点击侧边导航(例如导航抽屉)或应用栏中的选项菜单中的设置来导航到应用设置。
要为您的应用提供用户设置,请提供Activity
for 设置:
- 使用
Activity
托管 aPreferenceFragment
来显示应用程序设置。 - 为了保持与
AppCompatActivity
和 的 兼容性android.support.v7.preference library
,请使用PreferenceFragmentCompat
而不是PreferenceFragment
。
在设置活动中显示每个片段:
- 如果活动类扩展
Activity
并且片段类扩展PreferenceFragment
,请使用getFragmentManager()
. - 如果活动类扩展
AppCompatActivity
并且片段类扩展PreferenceFragmentCompat
,请使用getSupportFragmentManager()
. - 要将
preferences.xml
设置资源与片段关联,请使用setPreferencesFromResource()
. - 要设置设置的默认值,请使用
PreferenceManager.setDefaultValues()
。 - 要将设置菜单项连接到设置活动,请使用
Intent
.
为设置添加 XML 资源文件:
- 创建一个新的资源目录(File > New > Android Resource Directory)。
- 在资源类型下拉菜单中,选择xml。
xml
文件夹出现在文件res
夹内。 - 单击xml并选择File > New > XML resource file。
- 输入首选项作为 XML 文件的名称。该
preferences.xml
文件出现在xml
文件夹内。
在首选项 XML 文件中添加 UI 控件(例如切换开关)和属性:
- 要保持与 的兼容性
AppCompatActivity
,请使用该android.support.v7.preference library
版本。例如,SwitchPreferenceCompat
用于拨动开关。
对每个 UI 元素使用属性进行设置:
android:defaultValue
是应用程序第一次启动时的设置值。android:title
是用户可见的设置标题。android:key
是用于存储设置值的键。android:summary
是设置下显示的用户可见文本。
保存和读取设置值:
- 当应用程序启动时,该
MainActivity
onCreate()
方法可以读取已更改的设置值,并使用更改后的值而不是默认值。 - 每个设置都使用键值对来标识。Android 系统在为您的应用程序保存或检索文件中的设置时使用此键值对
SharedPreferences
。当用户更改设置时,系统会更新文件中的相应值SharedPreferences
。 - 要使用设置的值,您的应用可以使用密钥从
SharedPreferences
文件中获取设置。 SharedPreferences
您的应用程序从using 读取设置值,并使用、PreferenceManager.getDefaultSharedPreferences()
等获取每个设置值。.getString``.getBoolean