代码之家  ›  专栏  ›  技术社区  ›  Grodriguez

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

  •  1
  • Grodriguez  · 技术社区  · 6 年前

    Android文档描述了如何使用 PreferenceActivity 或者 PreferenceFragment . 首选项本身在XML文件中定义(例如。 preferences.xml )其中包括“钥匙”( android:key )用于在应用程序的 SharedPreferences .

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Darshan    6 年前

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

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