【发布时间】:2015-05-30 10:51:52
【问题描述】:
我正在根据用户输入更改我的应用程序的语言。 在此之后,我必须重新创建活动才能使更改可见。到目前为止,我已经尝试了两种方法:
-
第一种方法:
Intent refresh = getIntent(); finish(); startActivity(refresh);
但问题是,尽管活动加载了新的语言字符串,但操作栏标题仍保留为以前的语言。如果我关闭应用程序并再次加载屏幕,一切都很好。 所以我想我可能做错了什么并将代码更改为:
-
第二种方法:
Intent refresh = new Intent(this, FirstActivity.Class); refresh.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(refresh); finish();
这会导致应用程序崩溃。任何见解都会非常有帮助。
注意: 我正在使用 app.support.v7.app.ActionBarActivity
问题截图:
编辑:
我也试过了:
Intent refresh =getIntent();
finish();
this.supportInvalidateOptionsMenu();
startActivity(refresh);
问题依然存在。
编辑 2: 使用:
Intent refresh =getIntent();
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
supportInvalidateOptionsMenu();
else
invalidateOptionsMenu();
//this.supportInvalidateOptionsMenu();
//finish();
startActivity(refresh);
finish();
问题依然存在。
【问题讨论】:
-
请在
startActivity()之后致电finish()
标签: android android-activity android-actionbar locale