Je recherche sur Google & stackoverflow mais je ne peux pas résoudre mon problème. Je me réfère http://www.androhub.com/android-building-multi-language-supported-app/ J'ai les trois activités (activité 1,2,3). Activité 1> Activité 2> Activité 3 (changement de milti lang). Dans l'activité 3, j'ai deux boutons radio à changer (en, salut). Après avoir changé de langue aller à la première activité (Activité 1), ça va. Mais je veux rester en activité (rafraîchir l'activité en cours), après avoir choisi un bouton radio (changement de langue). Sinon, comment rappeler onCreate() quand je retournerai sur BackPressed(). Comment faire le meilleur moyen de rester actif après la langue de changement.Comment rafraîchir une activité après avoir changé de langue?
onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
txt = (MMTextView) findViewById(R.id.txt);
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
pref = getSharedPreferences("MyPref", Activity.MODE_PRIVATE);
editor = pref.edit();
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
String lang = "en";
switch (i) {
case R.id.eng:
lang = "en";
Intent i1 = new Intent(Main3Activity.this, MainActivity.class);
i1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i1);
finish();
break;
case R.id.hi:
lang = "hi";
Intent i2 = new Intent(Main3Activity.this, MainActivity.class);
i2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i2);
finish();
break;
default:
break;
}
changeLocale(lang);
}
});
loadLocale();
}
changeLocale
private void changeLocale(String lang) {
if (lang.equalsIgnoreCase(""))
return;
Locale myLocale = new Locale(lang);
saveLocale(lang);
Locale.setDefault(myLocale);
Configuration config = new Configuration();
config.locale = myLocale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
& saveLocale loadLocale
private void saveLocale(String lang) {
editor.putString("save", lang);
editor.commit();
}
private void loadLocale() {
String lang = pref.getString("save", "");
changeLocale(lang);
}
Ce lien peut vous aider: https://stackoverflow.com/questions/8049207/how-to-refresh-activity-after-changing-language-locale-inside-application?answertab=oldest#tab-top –
@ Shwe S'il vous plaît consulter ce lien ---> https://stackoverflow.com/questions/45088039/set-different-language-in-android-studio/45088145#45088145 – yash786