android 权限配置文件,设置  |  Android 开发者  |  Android Developers

注意:本指南介绍如何使用 AndroidX Preference Library。自 Android 10 开始,系统已弃用 android.preference 库平台。

设置使用户能够改变应用的功能和行为。设置可以影响后台行为,例如应用与云同步数据的频率;设置的影响还可能更为深远,例如改变用户界面的内容和呈现方式。

建议使用 AndroidX Preference Library 将用户可配置设置集成至您的应用中。此库管理界面,并与存储空间交互,因此您只需定义用户可以配置的单独设置。此库自带 Material 主题,可在不同的设备和操作系统版本之间提供一致的用户体验。

使用入门

Preference 是 Preference Library 的基础构建基块。设置屏幕包含 Preference 层次结构。您可将此层次结构定义为 XML 资源,或通过代码构建层次结构。

以下部分将介绍如何使用 AndroidX Preference Library 构建简单的设置屏幕。

注意:本指南假定您使用 androidx.preference:preference:1.1.0-alpha04 或更高版本。该库的旧版本可能不支持某些功能。

创建层次结构

1976f9eddc95bc0a936504baff7e2f2b.png

以下示例展示通过 XML 定义的简单层次结构:

xmlns:app="http://schemas.android.com/apk/res-auto">

app:key="notifications"

app:title="Enable message notifications"/>

app:key="feedback"

app:title="Send feedback"

app:summary="Report technical issues or suggest new features"/>

注意:根标签必须为 ,XML 资源必须放置于 res/xml/ 目录。

该层级结构包含两个单独的 Preferences:一个支持用户切换设置的 SwitchPreferenceCompat,还有一个没有微件的基础 Preference。

构建层次结构时,每个 Preference 都应配有唯一的密钥。

注意:请参阅 Android 设置设计指南,获取关于如何整理设置屏幕的建议。

扩充层次结构

若要从 XML 属性中扩充层次结构,则需要先创建一个 PreferenceFragmentCompat,替换 onCreatePreferences(),然后提供 XML 资源进行扩充,如以下示例所示:

Kotlin

class MySettingsFragment : PreferenceFragmentCompat() {

override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {

setPreferencesFromResource(R.xml.preferences, rootKey)

}

}Java

public class MySettingsFragment extends PreferenceFragmentCompat {

@Override

public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {

setPreferencesFromResource(R.xml.preferences, rootKey);

}

}

然后,与您对其他 Fragment 进行的操作一样,您可以将此 Fragment 添加到您的 Activity:

Kotlin

class MySettingsActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

supportFragmentManager

.beginTransaction()

.replace(R.id.settings_container, MySettingsFragment())

.commit()

}

}Java

public class MySettingsActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.settings_container, new MySettingsFragment())

.commit();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值