android - 我应该使用 strings.xml/R.string 而不是全局字符串常量(例如用于 Intent 中的键)吗?

标签 android android-intent

我想知道您是否应该使用 strings.xml 而不是全局常量。我了解到应该避免使用全局变量,但 strings.xml 可能不适合这样使用?

使用其中一种有什么优点/缺点吗?

我很确定像下面这样的硬编码字符串不是一个好方法。

putExtra("extraKey", extra);

使用 strings.xml 或 Constants,您可以进行拼写检查和自动完成。

带有 R.string 的典型行可能如下所示。

intent.putExtra(getString(R.string.first_player_for_intent), firstPlayer);

相比于

intent.putExtra(MyClass.first_player_for_intent), firstPlayer);

如果要使用常量,它们应该放在什么类中?

最佳答案

我不会使用 res/strings.xml 来存储常量。即使您没有 context,您也可能想要访问它们的值。此外,您的 key 不需要本地化。关于你应该存放它的地方,这取决于你,而我,这只是一个品味问题。我通常避免只为常量设置一个专用类,但我在 imo 所属的地方声明它。例如,如果您有一个名为 Player 的类,我会将所有与 Player 相关的常量放在那里。

关于android - 我应该使用 strings.xml/R.string 而不是全局字符串常量(例如用于 Intent 中的键)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33067052/

相关文章:

android - 两个 NFC 标签分别链接到项目中的两个不同 Activity ?

android - 图标未显示在 Android 牛轧糖的通知中

android - 当 WebView 无法使用互联网时,如何显示无互联网连接弹出窗口和 html 页面?

android - pendingintent 有时不工作

java - 在一项 Activity 中添加两个 GalleryView

java - 启动对话框式 Activity 时出现意外行为

android - 转换 Activity

android - 如何使只有一行可见的 BrowseFragment

Android 在每次重启时检查 Wifi

android - Circle CI 2.0 Android assembleDebug始终失败