0

enter image description here切換語言後,片段將增加重複的選項菜單項

在v4.fragment,我設置setHasOptionsMenu(true);,然後在onCreateOptionsMenu我設置inflater.inflate(R.menu.menu_fragment, menu);,一切都很好,直到我切換語言。

當應用程序運行時,我按Home鍵,打開設置,更改語言環境語言,從最近的應用程序列表中選擇我正在運行的應用程序,操作欄中的選項菜單將增加重複的菜單項,會發生什麼情況?

+0

顯示活動和片段源代碼 – Dima 2013-02-19 12:29:17

+1

我可能知道爲什麼。 當我更改語言環境時,android會調出顯示的Activity中的onCreate方法,除非您設置了清單。在我的活動中,片段將被重新生成並附加到Activity中,片段管理器中的舊片段和相同Activity中的新片段。因此該活動具有重複的菜單項。 – GeminiYellow 2013-02-20 05:44:24

回答

1

雙子座,我知道它已經晚了,你很可能已經有了答案。解決這個問題最簡單的方法就是添加menu.clear();

public void onPrepareOptionsMenu(Menu menu) { 
    MenuInflater inflater = new MenuInflater(getActivity().getApplicationContext()); 

    menu.clear(); 

    super.onPrepareOptionsMenu(menu); 
    inflater.inflate(R.menu.myMenu, menu); 
}