私は先週からこれをすべて試しています。スピナー アクティビティの言語を変更しようとしました。言語を変更することはできますが、言語を変更すると MainActivity が更新され続けます。私のポイントは、refresh() 関数に問題があります。ポインタまたは私が間違っていることです。ここに私の関数があります:-
public boolean onNavigationItemSelected(int position, long id) {
if(position == 0){
setLocale("fr");
Toast.makeText(MainActivity.this, "Locale in French !", Toast.LENGTH_LONG).show();
}
if(position == 1){
setLocale("es");
Toast.makeText(MainActivity.this, "Locale in Spain !", Toast.LENGTH_LONG).show();
}
if(position == 2){
setLocale("en");
Toast.makeText(MainActivity.this, "Locale in English !", Toast.LENGTH_LONG).show();
}
return true;
}
public void setLocale(String localeCode){
Locale locale = new Locale(localeCode);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
refresh();
//Toast.makeText(getApplicationContext(),Locale.getDefault().getDisplayLanguage(),Toast.LENGTH_LONG).show();
}
private void refresh() {
finish();
//setContentView(R.layout.activity_main);
Intent myIntent = new Intent(this, MainActivity.class);
// Intent myIntent = new Intent(this, OpertingSystemFragment.class);
startActivity(myIntent);
}