2012-09-19 104 views
1

我寫了一個小應用程序,它具有一些語言環境和語言選項。當用戶更改語言環境時,OptionsActivity將重新啓動並更新配置。在onRestart()方法中,MainActivity也更新配置。一切都很好,但如果用戶點擊選項硬件按鈕,使用首次加載的本地化資源創建選項菜單。我創建選項菜單,代碼:更改語言環境後更改資源中的錯誤

@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

我懂了。

@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; 
} 
+0

但問題是在這裏,如果你點擊OptionMenu,並改變方向,菜單的文本更改!如何解決它? –

+0

對不起,我不明白。方向改變時問題是否重複setTitle()? – ziwert