Android 文档描述了如何使用 PreferenceActivity
或 PreferenceFragment
创建“首选项”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/