我认为我会很优雅,并使用 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/