2

我有一个TextView根据情况向用户显示消息的方法。我可以根据情况更改字符串,效果很好。

我的问题是,我如何为不同的语言管理它?

我环顾四周,大多数建议是string.xml根据语言环境使用单独的。但由于这只是一种以编程方式更改其内容的字符串资源,因此它并没有真正起作用。

有没有办法有类似的东西

if(language is blabla)
    change the text to "this"

或类似的东西。

4

3 回答 3

0

您可以轻松地将本地更改为所需的本地:

    Locale locale = new Locale("en");
    Locale.setDefault(locale);
    Configuration mConfig = new Configuration();
    mConfig.locale = locale;
    getBaseContext().getResources().updateConfiguration(mConfig, 
            getBaseContext().getResources().getDisplayMetrics());
于 2013-04-03T22:12:47.150 回答
0

您可以使用类以编程方式检查用户的语言:http: //developer.android.com/reference/java/util/Locale.html

Locale.getDefault().toString()

接下来,您应该使用相应 string.xml 的路径您只更改粗体部分:

价值观-en-rMU

于 2013-04-03T21:53:59.847 回答
0

我通过使用 SQLite 数据库来管理这个。我有 5 种语言的 5 个不同的表。在我的 listAdapter 中,我从查询中导入了表名: SELECT * FROM dbname.sqlite_master WHERE type='table' 接下来,在一个名为 OutputStrings 的单例类中,我为 UI 导入所有使用的字符串。每个活动视图都从 OutputStrings 中读取字符串。

此致,

于 2013-04-03T21:54:48.693 回答