刷新活动后将语言字符串更改为不同

问题描述

我创建了由两个活动组成的应用程序。第一个是某种项目列表,第二个是查看有关从第一个屏幕选择的特定项目的详细信息。我没有为我创建的每个项目创建活动,而是使用 Intent putExtra 加载内容。关键是我的应用程序还可以选择更改语言,这就是问题所在。当我更改语言时(正如我们所知,如果我想更改语言环境,我需要刷新/重新创建活动)由 putExtra 发送的所有内容都会消失(这很明显,因为此视图是模板之王,重新创建后有没有数据)。我可以使用 onSaveInstanceState 保存该数据或使用 SharedPreferences 保存它,然后加载此保存的数据,但此保存的数据使用旧语言,因此我将始终检索相同的字符串。

用例:

  1. 启动应用
  2. 选择特定项目
  3. 开始另一个活动(并通过意图发送一些字符串)
  4. 检索数据并显示
  5. 点击按钮时更改语言(下面的功能代码
  6. 数据消失

我真正想要的是什么?更改语言后,应用程序应显示相同的字符串,但使用其他语言。这甚至可能吗(以这种方式使用动态加载的数据)?

更改语言的功能

public void change_language(Activity activity,String language)
{
    Locale locale = new Locale(language);
    Locale.setDefault(locale);
    Resources resources = activity.getResources();
    Configuration config = resources.getConfiguration();
    config.setLocale(locale);
    resources.updateConfiguration(config,resources.getdisplayMetrics());
    recreate();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)