android – 无法改变奥利奥的语言

前端之家收集整理的这篇文章主要介绍了android – 无法改变奥利奥的语言前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的应用中使用阿拉伯语和英语.它在牛轧糖或以下运行的设备上运行良好.但它不适用于奥利奥设备. 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());
}

而我正在传递“en”和“ar”作为语言论证.

解决方法

设置新的区域设置时,应重新启动活动.您可以使用下一段代码执行它:
private void restartActivity() {
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}

然后你的changeLanguage()方法将以下一个方式查看:

public void changeLanguage(Context context,context.getResources().getDisplayMetrics());

    restartActivity();
}

猜你在找的Android相关文章