就在最近的context.getResources().updateConfiguration()已在Android API 25中弃用,建议使用上下文.而是createConfigurationContext().
有谁知道createConfigurationContext如何用于覆盖android系统区域设置?
在此之前将通过以下方式完成:
Configuration config = getBaseContext().getResources().getConfiguration();
config.setLocale(locale);
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
Run Code Online (Sandbox Code Playgroud) 我的应用程序用户可以从应用程序的设置更改语言.是否可以更改应用程序内的语言而不影响一般语言设置? stackoverflow的这个问题对我来说非常有用,我已经尝试过了.更改语言后,新创建的活动将显示更改的新语言,但当前活动和以前创建的处于暂停状态的活动不会更新.如何更新活动?我也花了很多时间试图让偏好改变立即应用但没有成功.重新启动应用程序时,会再次创建所有活动,因此语言已正确更改.
android:configChanges="locale"
Run Code Online (Sandbox Code Playgroud)
还在所有活动的清单中添加.并且还支持所有屏幕.目前我还没有在activity的onResume()方法中做过任何事情.有没有办法刷新或更新活动(没有完成并重新开始)?我在onResume()方法中遗漏了一些事情吗?
我想在TextView中用(从右到左的语言,即阿拉伯语)编写文本.但我想让文字从右到左书写方向.gravity:right将文本对齐.我想从右到左证明文本的合理性(使单词和数字出现在他按行输入的顺序中).怎么样 ?
所以我的应用程序中有一个语言设置.当语言切换时,我希望所有的文本视图等立即改变语言.目前我只是更改配置中的语言环境,因此当用户重新启动活动时语言已更改.
我的问题的一个丑陋的解决方案是每次语言更改时使每个textview加载新资源.有更好的解决方案吗?也许是一种巧妙的方式来离散地重启活动?或者只是强制重新加载资源?
我需要将我的应用程序语言从英语更改为中文.我可以在许多设备上执行此操作,但Google Pixel除了Android 8.0.0之外.我正在使用以下代码
public static void changeLocaleTo(String locale){
Resources res = App.getContext().getResources();
DisplayMetrics dm = res.getDisplayMetrics();
android.content.res.Configuration conf = res.getConfiguration();
conf.setLocale(new Locale(locale.toLowerCase())); // API 17+ only.
conf.locale = (new Locale(locale.toLowerCase()));
res.updateConfiguration(conf, dm);
//for Build>=25
//res.createConfiguration(conf, dm);
}
Run Code Online (Sandbox Code Playgroud)
我使用以下链接尝试了很多东西
https://gunhansancar.com/change-language-programmatically-in-android/
但没有人能够改变我的Pixel手机中的语言.
请注意:但是,如果我从设备设置更改设备语言,我的应用程序也会更改为Pixel中的中文版.
我在res中有'values-zh'文件夹,有中文字符串.