AFL*_*ALI 7 android locale android-8.0-oreo
我正在尝试在我的应用中使用阿拉伯语和英语.它在牛轧糖或以下运行的设备上运行良好.但它不适用于奥利奥设备.API 26中是否有一些新的代码要求?我正在使用下面的代码.
public void changeLanguage(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = context.getResources().getConfiguration();
config.setLocale(locale);
context.createConfigurationContext(config);
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
}
Run Code Online (Sandbox Code Playgroud)
而我正在传递"en"和"ar"作为语言论证.
当您设置新的时,Locale您应该重新启动您的Activity. 您可以使用下一个代码片段来执行它:
private void restartActivity() {
Intent intent = getIntent();
finish();
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
然后你的changeLanguage()方法将如下所示:
public void changeLanguage(Context context, String language) {
Locale locale = new Locale(language);
Locale.setDefault(locale);
Configuration config = context.getResources().getConfiguration();
config.setLocale(locale);
context.createConfigurationContext(config);
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
restartActivity();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2776 次 |
| 最近记录: |