Android SharedPreferences:如何在运行时定义键?

Android SharedPreferences: How to define keys at runtime?

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

这适用于只有一组首选项的应用程序。但是,我们假设有一个应用程序可以有多个 "items"(例如:视频聊天应用程序中的多个帐户),并且需要为每个帐户显示一个首选项屏幕。

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

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

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