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

时间:2018-07-30 16:23:25

标签: android sharedpreferences android-preferences

Android文档描述了如何使用PreferenceActivityPreferenceFragment创建“首选项” UI。这些首选项本身是在XML文件(例如preferences.xml)中定义的,该XML文件除其他外还包含用于将每个首选项存储在应用程序的android:key中的“密钥”(SharedPreferences)。

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

这怎么办?是否可以在运行时指定密钥(以便可以为每个帐户使用不同的前缀)?有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

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

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