java - Eclipse/Java - R.string.* 中的值返回 int?

标签 java android string resources

我认为我会很优雅,并使用 string.xml 文件为异常消息等内容定义一些常量字符串。在 strings.xml 中,我点击 Add,选择“String”选项(不是“String Array”),然后给它一个名称和值。看到这段代码不起作用,我很惊讶:

throw new Exception(R.string.MyExceptionMessage);

这失败了,因为 R.string.MyExceptionMessage 实际上是 int 类型。我可以通过查看 R.java 来验证该类型。我错过了什么?

最佳答案

R 类中的所有内容都是引用,因此它只是定义为 int

如果您的代码在 Android Context 中运行或可以访问,您可以调用 context.getString(R.string.my_exception_message) 来获取实际的字符串值。

或者,对于不需要翻译的异常字符串,因此不需要在 Android 资源 .xml 文件中严格定义,您可以将字符串作为常量存储在某种 中StringConstants 接口(interface)。这样您就可以从可能无法访问 Context 的实用程序类中引用字符串。

关于java - Eclipse/Java - R.string.* 中的值返回 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983548/

相关文章:

android - PopupWindow + 全屏 => 显示通知栏?

android - 如何在 Android NDK 项目中使用预编译头文件?

尽管没有空终止字符串,但行为是否正确?

string - 在 apex Controller 中将我的 word 文档的 blob 内容转换为字符串

java - Eclipse 默认带有插件

java - 如何在java中使用返回类型为void的递归方法?

java - 你如何从一个按钮关闭的java swing窗口返回一个值?

java - 如果对象引用是静态的,是否意味着该对象的属性也是静态的?

Android GridView,回收两个不同的单元格?

android - 我不能动态地执行 getResources.getString 吗?