gpt4 book ai didi

java - 为什么在使用 sharedPreferences 时应该对字符串进行硬编码?

转载 作者:行者123 更新时间:2023-11-29 18:45:40 26 4
gpt4 key购买 nike

我听说使用 editor.putString("Message","Hello"); 是不好的做法,您应该改用 editor.putString(getString(R.string.消息字符串),“你好”); 。但为什么?它更长并且具有相同的结果,并且在我看来看起来更凌乱。是因为更难打错字吗?

这是来自 Signal 的示例: Source

  if (params[0] < SCREENSHOTS) {
boolean screenSecurity = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(TextSecurePreferences.SCREEN_SECURITY_PREF, true);
TextSecurePreferences.setScreenSecurityEnabled(getApplicationContext(), screenSecurity);
}

最佳答案

String 人类可读文本代码中的值是错误的。

这样做会使本地化变得不可能。

另一方面,来自 R.string. 的值会自动使用正确的语言(假定您使用 valuesvalues-esvalues-fr, ...并放置翻译)

注意:您可能不应该翻译 SharedPreferencekey 而应该翻译值 ("Hello") 部分,因为这可能是人类可读的东西。

editor.putString("message", getString(R.string.messagestring));

如果用户更改设备语言, key 可能会更改,这意味着旧存储值将不再在新 key 下找到。如果您希望键位于中央位置,最好将它们定义为代码中的 static final 常量。

editor.putString(MyPrefConstants.PREF_MESSAGE, getString(R.string.messagestring));

我实际上认为使用来自 R.string 的键是一个非常值得怀疑的设计决定。这适用于任何旨在供机器使用的内容,而不是用户可见的文本。有一些异常(exception),但它们很少见。

关于java - 为什么在使用 sharedPreferences 时应该对字符串进行硬编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52045955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com