如何在特定代码中放置@string资源?

时间:2014-11-10 10:17:09

标签: java android string

如何为MY TEXT创建@string资源而不是文本值?我希望它用于不同的语言。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == R.drawable.v1)textView.setText("MY_TEXT");
else if (resultCode == R.drawable.v2)textView.setText("MY_TEXT2");  

3 个答案:

答案 0 :(得分:0)

使用此:

textView.setText(getResources().getString(R.string.mytext));

答案 1 :(得分:0)

您可以使用getResources().getString(int id)

示例:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == R.drawable.v1)
        textView.setText(getResources().getString(
                    R.string.mystr));
    else if (resultCode == R.drawable.v2)
        textView.setText(getResources().getString(
                    R.string.somestr));  
}

res/values/strings.xml中添加字符串值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="mystr"> your text</string>
    <string name="somestr"> some other text</string>
</resources>

希望这有帮助。

答案 2 :(得分:0)

如果要支持不同的语言,则应为不同的语言提供不同的“值”文件夹,然后将strings.xml文件放在这些文件夹中。像这样:

 project_root/
    res/
       values/
           strings.xml
       values-es/
           strings.xml
       values-de/
           strings.xml

这里“es”是西班牙语的ISO语言代码,德语的“de”等等。您可以在List of ISO 639-1 codes找到完整的列表。

然后,在代码中引用它们时,只需使用普通的 R.string.my_string_name 即可。根据设备的位置设置,它将选择可用的语言文件。如果不存在所需的语言文件,它将选择默认值。