我有一个支持两种语言的应用程序,当我更改语言时应用程序运行良好,但是当我重新启动应用程序或旋转屏幕时,语言恢复为默认值。
我想要做的是保存语言,然后应用程序应该使用上次保存的语言,即使在重新启动或旋转屏幕后也是如此。
我做了很多研究并找到了一些解决方案,这些解决方案谈论了 localeHelper 和 Application 类以及其他方式,但无论如何它们都没有帮助我,或者我可能不太了解它们。
提前致谢。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkLanguage();
setContentView(R.layout.activity_profile);
final Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
Intent i;
switch(menuItem.getItemId()){
case R.id.reset_app:
startActivity(new Intent(ProfileActivity.this, MainActivity.class));
break;
case R.id.arabic:
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().putString("language", "ar").commit();
language("ar");
i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
break;
case R.id.english:
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit().putString("language", "en").commit();
language("en");
i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
break;
}
return true;
}
});
慕哥9229398
相关分类