Android:strings.xml中的字符串不是字符串?

jwb*_*ley 2 string android

在res/values下编辑我的strings.xml时,我可以看到它们出现在gen/my_package/R.java中,但它们是静态的最终int,为什么会这样?

- 为什么它们是静态最终的,大概这意味着我无法更新它们,即如果我将字符串分配给文本框,是否可以在某些时候从我的代码更新该字符串以更新文本框的内容?

- 同样为什么这些整数,特别是它们似乎是十六进制值.如果这是声明这些值的首选方法,为什么我们不首先将它们声明为十六进制值?

Nat*_*ann 7

它生成的int被android用来检索你的String.您必须具有对Context的引用(例如Activity)才能获取您的资源.例如,在您的活动中,您可以说.

this.getString(R.string.myString);
Run Code Online (Sandbox Code Playgroud)

getString in Activity是一个快捷方式

context.getResources().getString(R.string.myString);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

  • 对于不同的语言,您可以使用多个strings.xml.Android会根据用户配置自动选择正确的一个.您不必为所定位的每种语言提供多个.java源. (2认同)