【问题标题】:How to make android app data, app-wide available?如何使应用程序范围内的 android 应用程序数据可用?
【发布时间】:2018-11-13 11:01:53
【问题描述】:

如何通过我的整个 Android 应用程序提供数据? 例如,我想在每个屏幕的工具栏中显示一张用户图片。此外,用户的姓名会显示在每个屏幕的导航抽屉中。

单身人士是否是正确的方法?还是其他技术更好?

我一直在谷歌搜索,但到目前为止我找不到适合我的用例的好方法。

【问题讨论】:

  • 将这些值保存到共享首选项,并在需要时检索。
  • 在您需要的任何地方检索数据。创建连接,使用数据,销毁连接。

标签: android user-data


【解决方案1】:

使用共享首选项:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();

保存在共享首选项中:

editor.putString("tag", "save me please");
editor.apply();

从共享首选项中检索:

String s = preferences.getString("tag", "default_value");

注意事项: 您可以将标签设为字符串常量,以确保始终使用相同的值。 如果您将编辑器用于多个值,请始终记住在最后添加 editor.apply() 以实际应用您的更改。 如果您希望编辑器同步写入更改,请改用 editor.commit()。您可以在共享首选项中保存任何类型的变量,只需使用适当的方法(而不是 putString 使用 putInt、putLong 等 - 与 getSring 相同)。在API here中了解更多关于共享偏好的信息

【讨论】:

  • 这是否也适用于我上面描述的用例?我需要在工具栏和导航抽屉中显示图像以及用户名。所有这些小部件都存在于应用程序的每个屏幕中。
  • 是的,你可以使用putString作为用户名,以及用户照片的路径。然后有一个方法可以从共享首选项中读取字符串并在工具栏/导航抽屉中填充您的视图
  • ok,但图像是从在线位置检索的。这意味着每次加载屏幕时都需要下载它吗?那么我如何才能下载和存储一次,然后每次都从该位置检索呢?
  • 下载后,如上所述使用共享首选项中的本地路径
  • 好的,谢谢。您认为包含所有此类数据的单例(我目前正在使用)不是一个好方法吗?
猜你喜欢
  • 2015-04-22
  • 2016-06-12
  • 2011-04-12
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多