Android文档描述了如何使用 PreferenceActivity 或者 PreferenceFragment . 首选项本身在XML文件中定义(例如。 preferences.xml )其中包括“钥匙”( android:key )用于在应用程序的 SharedPreferences .
PreferenceActivity
PreferenceFragment
preferences.xml
android:key
SharedPreferences
这对于有一组偏好的应用程序很好。但是,假设有一个应用程序可以有多个“项目”(例如:视频聊天应用程序中的多个帐户),并且需要为每个帐户显示首选项屏幕。
怎么能做到?是否可以在运行时指定密钥(例如,可以为每个帐户使用不同的前缀)?有没有更好的方法来解决这个问题?
是的,有可能! 您可以像在运行时一样分配键,但是正如您在注释中所说,您需要在Xml中更改预定义首选项的键,而不是显式地创建新的首选项,下面是一个方法-
Preference pref = findPreference("my_pref"); String myPrefix = "prefix_"; pref.setKey(myPrefix + pref.getKey());