区域设置无法正常工作

时间:2017-04-01 22:59:09

标签: android

我有一个不同的英语,法语和西班牙语字符串。即使将Locale设置为French,显示的字符串仍为英文。 我在名为values-fr-rFR的values目录下创建了一个字符串资源文件。 我的代码如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Configuration c = getResources().getConfiguration();
        c.setLocale(new Locale("fr", "FR"));
        getApplicationContext().createConfigurationContext(c);
        TextView textId = (TextView)findViewById(R.id.helloId);
        textId.setText(R.string.hello);
    }

有人可以说我的代码有什么问题吗?在这里,我可以将Locale更改为“fr”。但是textView textId中显示的字符串仍然是英文。

1 个答案:

答案 0 :(得分:0)

您需要确保拥有一个xml文件,其中包含您要使用的文本的本地化版本。例如,如果您引用Android docs

英文字符串(默认语言环境),/ values / strings.xml:

<resources>
    <string name="hello_world">Hello World!</string>
</resources>

西班牙语字符串(区域设置),/ values-es / strings.xml:

<resources>
    <string name="hello_world">¡Hola Mundo!</string>
</resources>

然后你可以这样做:

// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);

// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

所有示例和进一步阅读都可以在Android开发者网站上找到:https://developer.android.com/training/basics/supporting-devices/languages.html