我写了一个小应用程序,它有一些语言环境和语言选项。当用户更改区域设置时,OptionsActivity将重新启动并更新配置。 MainActivity也在onRestart()方法中更新配置。一切都很好,但是如果用户点击选项硬件按钮,则使用首先加载的本地化资源创建选项菜单。我用代码创建选项菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.d(Const.LOG_TAG, "onCreateOptionsMenu");
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main, menu);
return true;
}
/menu/activity_main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_settings"
android:icon="@drawable/setting_icon"
android:title="@string/menu_settings"/>
</menu>
menu_setting是本地化字符串。怎么了?为什么某些资源会更新,但有些资源不是?
答案 0 :(得分:1)
我知道了。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
Log.d(Const.LOG_TAG, "Menu prepared");
MenuItem item = menu.findItem(R.id.menu_settings);
item.setTitle(R.string.menu_settings);
return true;
}