Android 在运行时更改7.0以上设备的语言问题
我有一个与此非常相似的问题:除了它对Api 24及以下版本非常有效,但对Api 26及以上版本根本不起作用(无法测试Api 25) 梯度依赖Android 在运行时更改7.0以上设备的语言问题,android,build.gradle,androidx,Android,Build.gradle,Androidx,我有一个与此非常相似的问题:除了它对Api 24及以下版本非常有效,但对Api 26及以上版本根本不起作用(无法测试Api 25) 梯度依赖 dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.0.2' //DO NOT UPGRADE - Translation issue implem
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2' //DO NOT UPGRADE - Translation issue
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
testImplementation 'androidx.test.espresso:espresso-core:3.2.0'
testImplementation 'androidx.test:core:1.2.0'
testImplementation 'androidx.test.ext:junit:1.1.1'
implementation 'com.google.android.material:material:1.0.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
}
单击按钮时触发的代码
/**
* Select language application
*/
public static void defineLanguage(ImageButton button, final String value, final Activity activity, final Activity source) {
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Locale locale = new Locale(value);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
activity.getApplicationContext().getResources().updateConfiguration(config,
activity.getBaseContext().getResources().getDisplayMetrics());
Intent intent = new Intent(activity, source.getClass());
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
activity.finish();
activity.startActivity(intent);
}
});
}
我是否应该等待谷歌的修复,还是我的问题有点不同?多亏了你的评论,我才这么做,效果非常好。谢谢你的帮助!