如何在用户更改系统语言时保存字符串资源并进行更改?

时间:2015-03-15 14:16:08

标签: android string arraylist

我有一个包含自定义对象的ArrayList。

  ArrayList<CustomObject> list =new ArrayList<>();
    CustomObject object;
    object.setString(getString(R.string.my_string));
    list.add(object);

现在,用户更改了设备的系统语言。字符串值保持不变,并以对象添加到列表时处于活动状态的语言显示。

我希望字符串值应用当前活动语言的资源。

我尝试了以下但不起作用:

ArrayList<CustomObject> list =new ArrayList<>();
    CustomObject object;
    object.setInt(R.string.my_string);
    list.add(object);

这样我可以在显示文本时将int转换为字符串。例如:

  TextView textView=TextView) findViewById(R.id.textView);
    textView.setText(getString(list.get(0).getInt());

但不知何故,在我的strings.xml中添加或删除字符串时,文本会变得混乱。

他们可以选择解决这个问题吗?也许通过获取字符串的唯一ID,然后将此ID转换回字符串资源?

1 个答案:

答案 0 :(得分:0)

当用户更改系统语言时,应该重新启动Activity。然后,这将使用具有正确语言的字符串资源。

你的清单中有android:configChanges的可能吗?

见这里:

android change language listener