我有一个包含自定义对象的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转换回字符串资源?
答案 0 :(得分:0)
当用户更改系统语言时,应该重新启动Activity
。然后,这将使用具有正确语言的字符串资源。
你的清单中有android:configChanges
的可能吗?
见这里: