为了账号安全,请及时绑定邮箱和手机立即绑定

重启或旋转屏幕后恢复默认语言

重启或旋转屏幕后恢复默认语言

芜湖不芜 2022-10-07 16:22:55
我有一个支持两种语言的应用程序,当我更改语言时应用程序运行良好,但是当我重新启动应用程序或旋转屏幕时,语言恢复为默认值。我想要做的是保存语言,然后应用程序应该使用上次保存的语言,即使在重新启动或旋转屏幕后也是如此。我做了很多研究并找到了一些解决方案,这些解决方案谈论了 localeHelper 和 Application 类以及其他方式,但无论如何它们都没有帮助我,或者我可能不太了解它们。提前致谢。这是我的代码:@Overrideprotected 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;        }    });
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

checkLanguage使用compareTo(或)不为所有字符串比较('ar','en'...)equals引用相等(==)。

if (langCode.compareTo("ar") == 0) {
   ...}

或者

if (langCode.equals("ar")) {}

https://stackoverflow.com/a/513839/2711811


查看完整回答
反对 回复 2022-10-07
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信