【问题标题】:How Do I Set The Value Of A String In Android?如何在 Android 中设置字符串的值?
【发布时间】:2017-11-17 15:25:46
【问题描述】:

我有一个字符串和一个按钮如下:

String message = "Hello World"

button.OnClickListener(......){

   message = "123456789";
}

这就是我想要的,

当应用程序启动时,字符串是“Hello World”,但当用户单击按钮时,它会变为“123456789”,我希望字符串在生命周期内永久更改。

所以当用户重新启动应用程序或重新安装它时,字符串仍然是 “123456789”。我认为这属于共享首选项。

请帮忙,我真的需要这个

【问题讨论】:

  • 当你重新安装意味着什么卸载以前的apk并重新安装?
  • 重新启动应用程序是的,您可以使用共享首选项。 为了重新安装检查这个问题,你需要为那个stackoverflow.com/questions/9815363/…维护备份
  • 这可能是 this 的重复项。此链接可能对您有所帮助。

标签: android string sharedpreferences


【解决方案1】:

您可以将该字符串保存在共享首选项中,然后从那里获取所有内容。如果没有值,您可以从资源中获取默认值,或者您可以提供自己的默认值String。请注意,您可以终生这样做。如果用户删除应用或清除缓存,您的视图将显示默认值,Hello World

编辑

您可以使用清单中的android:allowBackup="true" 来保留旧的共享首选项值。

【讨论】:

  • 所以当用户重新启动应用程序或重新安装它时,字符串仍然是“123456789”。我认为这属于共享首选项。这需要备份,这不能仅通过共享首选项来实现!
  • 它可以使用清单中的fullBackupContent 来恢复旧值。
【解决方案2】:

当您重新安装时,来自SharedPreferences 的数据可能会消失,特别是如果您先卸载应用程序,这与使用SQLite 的本地数据库相同。您可以尝试使用本地服务器上的数据库。

【讨论】:

    【解决方案3】:

    在 SharedPreferences 中保存字符串:

    SharedPreferences.Editor editor = getSharedPreferences("com.package.name", Context.MODE_PRIVATE).edit();
    editor.putString("keyName", message);
    editor.apply();
    

    要找回来:

    SharedPreferences sharedPrefs = getSharedPreferences("com.package.name", Context.MODE_PRIVATE);
    message = sharedPrefs.getString("keyName",defaultValue);
    

    当用户修改它时,保存它。当应用程序启动时,将其设置为默认值“Hello World”,这样当用户没有点击按钮时,它将保持为 Hello World。

    【讨论】:

      【解决方案4】:

      对于重新启动 Shared Preference 是最好的机制,但对于重新安装 allowbackup 在 API 级别 23 及更高级别上工作, 您可以考虑在首次更新共享首选项后更新服务器上的值,并且在重新安装期间可以为特定用户执行 API 调用检查。

      【讨论】:

        猜你喜欢
        • 2011-03-07
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        • 1970-01-01
        • 2014-05-13
        • 1970-01-01
        相关资源
        最近更新 更多