Android 来自 xml 的本地化字符串
Android localization strings from xml
我的 res
文件夹中有 xml
文件夹,文件结构如下:
<questions>
<question
number="1"
text="my string"
numberTwo="1" />
...
</questions/
是否可以不在这里对字符串进行硬编码并使用@string/...资源,因为我真的需要在这里进行本地化?
你可以
text="mystring"
在您的 xml 文件中
和 <string name"mystring">lalala</string>
在您的 strings.xml 中(可能在其他文件中本地化,例如在文件夹值中-de.xml)
然后在你的代码中你可以这样做:
int stringId = getResources().getIdentifier("mystring", "string");
String string = getString(stringId); // that will be "lalala"
另一种方法是将 xml 文件完全本地化在文件夹 xml-de 中,但这会导致一些文本重复。
在string.xml ->lalala 在你的strings.xml
->文件夹 values-de.xml
然后在你的代码中你可以在 Activity:
String AppName=getResources().getString(R.string.app_name);
而在 Fragmetn
String AppName=getActivity().getResources().getString(R.string.app_name);
我的 res
文件夹中有 xml
文件夹,文件结构如下:
<questions>
<question
number="1"
text="my string"
numberTwo="1" />
...
</questions/
是否可以不在这里对字符串进行硬编码并使用@string/...资源,因为我真的需要在这里进行本地化?
你可以
text="mystring"
在您的 xml 文件中
和 <string name"mystring">lalala</string>
在您的 strings.xml 中(可能在其他文件中本地化,例如在文件夹值中-de.xml)
然后在你的代码中你可以这样做:
int stringId = getResources().getIdentifier("mystring", "string");
String string = getString(stringId); // that will be "lalala"
另一种方法是将 xml 文件完全本地化在文件夹 xml-de 中,但这会导致一些文本重复。
在string.xml ->lalala 在你的strings.xml ->文件夹 values-de.xml 然后在你的代码中你可以在 Activity:
String AppName=getResources().getString(R.string.app_name);
而在 Fragmetn
String AppName=getActivity().getResources().getString(R.string.app_name);