Я заметил, что мое приложение меняет язык только тогда, когда я изменяю язык телефона, но это только для фрагментов, для активности, оно будет работать
Я использую
private void setLocale(String lang) {
Locale locale= new Locale(lang);
Locale.setDefault(locale);
Configuration config=new Configuration();
config.locale=locale;
getBaseContext().getResources().updateConfiguration(config,getBaseContext().getResources().getDisplayMetrics());
SharedPreferences.Editor editor=getSharedPreferences("Settings",MODE_PRIVATE).edit();
editor.putString("My_Lang",lang);
editor.commit();
}
public void loadLocale(){
SharedPreferences editor=getSharedPreferences("Settings",Splash.MODE_PRIVATE);
String language=editor.getString("My_Lang","My_Lang");
Log.d("hahahahahahdhjzshsdj",language);
setLocale(language);
}
и
private void showChangeLanguageDialog() {
final String[] listLang={"Francais","العربية","English"};
AlertDialog.Builder onBuilder=new AlertDialog.Builder(Splash.this);
onBuilder.setTitle("Choose Language...");
onBuilder.setSingleChoiceItems(listLang, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(which==0){
setLocale("fr");
recreate();
Intent intent=new Intent(Splash.this,Splash2.class);
startActivity(intent);
}
else if(which==1){
setLocale("ar");
recreate();
Intent intent=new Intent(Splash.this,Splash2.class);
startActivity(intent);
}
else if(which==2){
setLocale("en");
recreate();
Intent intent=new Intent(Splash.this,Splash2.class);
startActivity(intent);
}
dialog.dismiss();
}
});
AlertDialog mDialog=onBuilder.create();
mDialog.show();
}
Итак, когда я запускаю приложение, у меня появляется alertDialog
, чтобы выбрать язык, после выбора оно изменило единственное бездействие, но не во фрагменте, у меня 6 фрагментов
Как я могу это исправить?