更改语言环境后更改资源的问题

时间:2012-09-19 16:23:54

标签: android locale

我写了一个小应用程序,它有一些语言环境和语言选项。当用户更改区域设置时,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是本地化字符串。怎么了?为什么某些资源会更新,但有些资源不是?

1 个答案:

答案 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;
}