[英]Android - Switching between fragments; Menu Item problems
我的應用程序使用片段,操作欄和導航抽屜。 當我在片段之間切換時,菜單項將損壞並且不再起作用。 我嘗試了各種方法來解決問題,但無濟於事。
在我的片段onCreate
我有setHasOptionsMenu(true);
。
這是我的onCreateOptionsMenu
:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
Log.d("Log", "Inflating Menu");
menu.clear();
inflater.inflate(R.menu.blank, menu);
super.onCreateOptionsMenu(menu, inflater);
}
這是我簡單的onOptionsItemSelected
:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.mySearch:
Log.d("Log", "Implementing Search Method");
search();
return true;
case R.id.action_settings:
//do something
return true;
}
return super.onOptionsItemSelected(item);
}
在每個片段的菜單中,我使用menu.Clear();
以防止在片段之間切換時堆積菜單項。 第一次選擇片段時,菜單運行選定的功能就很好,但是在切換到另一個片段並再次返回菜單項之后,單擊菜單項不會執行任何操作。
問題是您清除菜單並再次執行充氣菜單。
刪除線
inflater.inflate(R.menu.blank, menu);
相反,您只需要清除Fragment的onCreateOptionsMenu()中的菜單,這樣就不會為該特定片段顯示菜單,而為其他片段顯示菜單。
另外,您只需要在所有片段共有的Activity
onCreateOptionsMenu
膨脹菜單
也可以在這里查看我的答案。 動作按鈕顯示在所有片段中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.