【问题标题】:Android - How can i select a strings.xml without LocalizationAndroid - 如何在没有本地化的情况下选择 strings.xml
【发布时间】:2015-06-28 09:28:50
【问题描述】:

是否可以在不更改设备语言的情况下手动选择strings.xml 文件?

我想让Button在两种语言之间切换,但我发现只是使用android studio的内置功能来创建不同的strings.xml,由您的本地化选择。

【问题讨论】:

  • 您找到任何全局解决方案了吗?

标签: java android xml string switch-statement


【解决方案1】:

如果您想使用不同的strings.xml,您必须切换本地化。这可以通过编程方式完成,但强烈建议不要这样做,因为您会弄乱系统。

您可以创建一个不同的资源 XML 文件,您可以将您的字符串放在那里,给它们一个唯一的 id 并以相同的方式获取它们 (R.id.your_string)

编辑:

您创建一个放入 /res/values 的 XML 文件。该文件将以与 strings.xml 相同的方式声明一些字符串。带有 ID、值和一切。然后从代码中你所做的是有条件地更改字符串。例如:

如果(这个){ //从这里的strings.xml获取字符串(R.strings.your_string 别的 { //以与上面相同的方式从 your_file.xml 获取字符串。 {

更多信息请查看documentation

【讨论】:

  • 感谢您的回答,但我不确定如何使用新的资源文件。我是否必须在每个 TextView 中从该文件中读取一个字符串,或者是否可以将“@string/[..]”全局更改为“@newresource/[...]”
  • 编辑了我的答案,请检查是否有您不明白的地方。
  • 好的,我知道了,非常感谢!但是,如果不显式更改每个 TextView,就无法全局更改所有字符串,对吧?因为字符串必须有不同的名称,所以我猜不可能匹配它们。而且没有办法给它们取相同的名字。好吧,现在我可以在不使用其他资源的情况下更好地将所有内容都放在 strings.xml 中
  • 可以。我能想到的一个简单方法是:声明一个布尔值作为标志。并将每个textView.setText() 置于if myFlag==true 的条件内,执行此操作,否则执行此操作。如果我的回答对你有帮助,请采纳,谢谢。
  • 我知道你的意思,我就是这样实现的。工作正常,但我希望有一个解决方案,例如:两个具有相同字符串名称的资源文件:one in resources.xml 和 resources2.xml 两个。在我的java代码中我想说:使用这个resources.xml和if(...)使用resources2.xml中的字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 2012-10-11
  • 1970-01-01
相关资源
最近更新 更多