我想从sqlite值获得与OS语言(本地化)不同的值。这该怎么做?
像这样创建表:
create table test (
_id integer primary key autoincrement,
some_value text,
some_value_en text
);
并获得适当的值(some_value或some_value_en)会是一个很好的解决方案吗?
答案 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”覆盖它。
根据列名选择。