Android 共享首选项 : How to define keys at runtime?

标签 android sharedpreferences android-preferences

Android 文档描述了如何使用 PreferenceActivityPreferenceFragment 创建“首选项”UI。首选项本身在 XML 文件(例如 preferences.xml)中定义,其中包含用于存储每个首选项的“键”(android:key)应用的 SharedPreferences 中的首选项。

这对于具有单一首选项集的应用程序很有用。但是,我们假设有一个应用程序可以有多个“项目”(例如:视频聊天应用程序中的多个帐户),并且需要为每个帐户显示一个首选项屏幕。

如何做到这一点?是否可以在运行时指定 key (例如,每个帐户可以使用不同的前缀)?有没有更好的方法来解决这个问题?

最佳答案

是的,有可能! 您可以在运行时分配键,但正如您在评论中所说,您需要在 Xml 中更改预定义首选项的键而不是显式创建新首选项,这是一种方法 -

Preference pref = findPreference("my_pref");
String myPrefix = "prefix_";
pref.setKey(myPrefix + pref.getKey());

关于Android 共享首选项 : How to define keys at runtime?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51598363/

相关文章:

android - 如何设置 editText 首选项的范围?

android - 如何设置/更新我的首选项(PreferencesAcitivity)的值?Android

android - 如何从 PreferenceScreen 上的文本条目打开对话框?

java - 如何在我的设置 Activity 中添加主题?

java - 调用Android启动服务中的函数

android - 如何以编程方式在小米中为我的应用启用自动启动

android - 我可以在底部导航 View 中添加超过 5 个菜单项吗?

android - Viewpager 和 FragmentPagerAdapter : Page view removal

java - SharedPreferences 返回错误值并且不更新当前值

android - 何时使用 CheckBox 何时使用 Switch