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

我想我应该很优雅,使用string.xml文件为异常消息之类的东西定义一些常量字符串。在strings.xml中,我点击Add,选择“String”选项(不是“stringarray”),然后给它一个名称和值。我惊讶地发现这段代码不起作用:

抛出新异常(R.string.MyExceptionMessage);

这失败了,因为R.string.MyExceptionMessage实际上是int类型的。我错过了什么

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

如果您的代码运行在—或有权访问—在AndroidContext中,您可以调用Context.getString(R.string.my_exception_message)来获取实际的string

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

发表评论