我想我应该很优雅,使用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
接口中。这样,您就可以从实用程序类中引用可能无法访问上下文的字符串