android sqlite - 相同的价值 - 不同的语言

时间:2012-01-12 20:02:23

标签: android sqlite localization

我想从sqlite值获得与OS语言(本地化)不同的值。这该怎么做?

像这样创建表:

create table test (
_id integer primary key autoincrement,
some_value text,
some_value_en text
);

并获得适当的值(some_value或some_value_en)会是一个很好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望以动态方式访问本地化资源。您可以做的是首先使用此方法获取标识符:

int id = getResources().getIdentifier("name_of_resource", "id", getPackageName());

资源名称可以是从数据库中获得的任何内容。本地化的string.xml将完成剩下的工作。所以基本上你只需将默认标签存储在数据库中。

String localizedResource = getResources().getString(id);

请记住,通过Id直接访问资源会更有效。

答案 1 :(得分:2)

我不确定您需要什么,但您可以使用Android的本地化基础架构来获取列名称。将“some_value”放在values \ strings.xml中的String资源中,并在values-en \ strings.xml中使用“some_value_en”覆盖它。

根据列名选择。