Android Jetpack 首选项
如今,我们可以观察到,在我们使用的几乎所有应用程序中,都有一个设置屏幕,用户可以根据自己的喜好更改他们的偏好。例如 WhatsApp 等应用程序具有暗模式和亮模式选项,用户可以一键更改应用程序的主题。实现设置屏幕是一种很好的方式,我们可以提供更好的用户体验,这也是一种趋势。所以这就是为什么我们应该使用最好和最简单的方法在您的应用程序中实现首选项。在本文中,我们将着眼于以下几点。
- 开始使用
- 基本偏好
- 对话
- 小部件
喷气背包首选项入门
在开始之前,我们应该知道在我们的应用中有两种实现偏好的方法:
- XML 方式:在 XML 方式中,我们在一个 XML 文件中声明我们的所有首选项,并在我们的活动中使用这个文件。
- 编码方式:除了XML,我们还可以为Activity中的Preferences编写代码。如果我们想在不编写这么多行代码的情况下构建一个 Android 应用程序,那么我们不应该使用它。
现在我们知道了应用程序中用户偏好的方式,现在让我们添加喷气背包偏好的库,但在此之前创建一个项目。
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Kotlin作为编程语言。
第二步:添加依赖
复制以下Jetpack Preference依赖项并将其粘贴到您的应用级 build.gradle 文件中。
implementation ‘androidx.preference:preference:1.1.0-alpha05’
基本偏好
我们可以使用应用程序的设置屏幕执行许多任务,但最简单和最常见的是简单文本、带有任何摘要的简单文本、带有图标的简单文本以及带有一些样式或文本装饰的简单文本。要使用简单的文本首选项,请在 PreferenceScreen 的 XML 文件中添加以下代码:
XML
XML
bold italic Underlined word
You can use some styles in your preferences just the way its done hear.
XML
XML
Kotlin
val simplePreference = Preference(context).apply {
// to set the KEY
key = "simple_preference"
// to set the TITLE
title = "Titie of Preference"
// to set the SUMMARY
summary = "Summary of Preference"
// to add ICON
icon = ContextCompat.getDrawable(context, R.drawable.ic_android)
// to set one line title
isSingleLineTitle = true
}
XML
XML
- First Value
- Second Value
- Third Value
- 1
- 2
- 3
XML
Kotlin
val listPreference = ListPreference(context).apply {
key = "list_example"
title = "@string/title_preference"
entries = arrayOf("First Value", "Second Value", "Third Value")
entryValues = arrayOf("1", "2", "3")
}
XML
Kotlin
val multiSelectListPreference = MultiSelectListPreference(context).apply {
key = "multi_select_list"
title = "@string/title_preference"
summary = "@string/summary_preference"
entries = arrayOf("First Value", "Second Value", "Third Value")
entryValues = arrayOf("1", "2", "3")
}
XML
我们在上面的代码中使用了三个属性。我们将了解我们使用的
- app : key用于唯一标识首选项,就像我们通常使用的android : id标签一样。
- app : title用于给偏好设置一个标题
- app : summary用于给某个偏好提供一些摘要
仅仅添加一个简单的文本是不够的,因此您还可以在首选项中添加一些样式。为此,您必须在字符串.xml中创建一个字符串,并在
XML
bold italic Underlined word
You can use some styles in your preferences just the way its done hear.
在字符串.xml 中添加字符串后,您的偏好将如下所示
XML
您还可以使用app : icon属性将图标添加到首选项,如下所示
XML
上述首选项的输出:
要通过编写代码使用首选项,您必须创建一个首选项对象并应用所有属性,如下所示。
科特林
val simplePreference = Preference(context).apply {
// to set the KEY
key = "simple_preference"
// to set the TITLE
title = "Titie of Preference"
// to set the SUMMARY
summary = "Summary of Preference"
// to add ICON
icon = ContextCompat.getDrawable(context, R.drawable.ic_android)
// to set one line title
isSingleLineTitle = true
}
对话
我们还可以将对话添加到我们的偏好中。我们可以将任何类型的对话用作简单的警报对话,仅包含给出消息的文本或带有 EditText 的对话以获取输入或显示多个选择列表首选项的对话。
EditText 对话:
添加以下代码,该代码将创建一个文本,单击它后,它将打开一个对话,而无需在后端编写任何代码。
XML
通过使用 Kotlin,它可以完成如下所示
val editTextPreference = EditTextPreference(context).apply {
key = "edittext_example"
...
}
列表首选项:
现在我们将添加列表首选项,但在此之前在您的字符串.xml文件中添加以下行。
XML
- First Value
- Second Value
- Third Value
- 1
- 2
- 3
现在在 mainactivity.xml 中为 Listpreference 添加以下代码
XML
输出:
使用 Kotlin 代码添加列表首选项可能更容易,因为在 XML 中,您必须在字符串.xml中单独声明项目
科特林
val listPreference = ListPreference(context).apply {
key = "list_example"
title = "@string/title_preference"
entries = arrayOf("First Value", "Second Value", "Third Value")
entryValues = arrayOf("1", "2", "3")
}
我们在上面构建的列表首选项只能从多个选项中选择一个选项,但现在我们将创建一个多选列表首选项,我们可以从中选择多个选项。代码如下所示。
XML
它的 Kotlin 代码如下
科特林
val multiSelectListPreference = MultiSelectListPreference(context).apply {
key = "multi_select_list"
title = "@string/title_preference"
summary = "@string/summary_preference"
entries = arrayOf("First Value", "Second Value", "Third Value")
entryValues = arrayOf("1", "2", "3")
}
输出:
小部件
现在我们将学习如何优先使用小部件。我们可以在我们的首选项中使用以下小部件。
- 复选框
- 搜索栏
我们将创建另一个活动,它将使用上面的所有小部件,如下面的代码所示。
XML
输出: