Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 清除应用程序数据后,设备区域设置设置为en_us_Android_Android Resources - Fatal编程技术网

Android 清除应用程序数据后,设备区域设置设置为en_us

Android 清除应用程序数据后,设备区域设置设置为en_us,android,android-resources,Android,Android Resources,我有一个本地化的字符串资源a。我注意到,在清除应用程序数据/缓存(在设置下)并打开我的活动(属于该应用程序)后,无论当前设备语言如何,我总是在en locale中看到资源a。如果我再次转到设置,手动将设备语言更改为任意语言,然后返回到我的活动,那么资源A将再次正确本地化 我想知道为什么在清除应用程序数据/缓存后将区域设置设置为默认值,有没有办法解决这个问题?谢谢。这是一个黑客解决方案,但您可以在launcher活动中设置区域设置,如下所示: Configuration config = res.

我有一个本地化的字符串资源a。我注意到,在清除应用程序数据/缓存(在设置下)并打开我的活动(属于该应用程序)后,无论当前设备语言如何,我总是在en locale中看到资源a。如果我再次转到设置,手动将设备语言更改为任意语言,然后返回到我的活动,那么资源A将再次正确本地化


我想知道为什么在清除应用程序数据/缓存后将区域设置设置为默认值,有没有办法解决这个问题?谢谢。

这是一个黑客解决方案,但您可以在launcher活动中设置区域设置,如下所示:

Configuration config = res.getConfiguration();
Configuration configuration = new Configuration();
config.locale = config.locale;
getBaseContext().getResources().updateConfiguration(configuration,
      getBaseContext().getResources().getDisplayMetrics());

您还可以检查设备区域设置,以绝对确保设备区域设置已更改。

我认为,您需要在应用程序启动时设置区域设置。我如何才能做到这一点?我以为应用程序区域设置总是与设备设置中的语言集同步,但它不是这样工作的?你能告诉我你支持什么语言吗?我的应用程序支持en、fr、de、es、zh、ja。