2017-04-17 65 views
1

我想實現一個菜單擺脫顯示片段我的片段沒有得到執行onCreateOptionsMenu(菜單菜單,MenuInflater吹氣)

public class NewsTab extends Fragment { 

,但下面的代碼似乎並沒有執行。

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater.inflate(R.menu.newsmenu, menu); 
     TextView text= null; 

     SearchView mSearchView = (SearchView) menu.findItem(R.id.search).getActionView(); 

     mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 
       Log.e("search sering....:", newText.toString()); 
       dataAdapter.getFilter().filter(newText.toString()); 
       dataAdapter.setFilterQueryProvider(new FilterQueryProvider() { 
        public Cursor runQuery(CharSequence constraint) { 
         Log.e("searched ....:", constraint.toString()); 
         return db.fetchOrdersByName(constraint.toString()); 
        } 
       }); 
       return false; 
      } 
     }); 
     super.onCreateOptionsMenu(menu, inflater); 
    }` 

我在onCreate方法中使用setHasOptionsMenu(true)

public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setHasOptionsMenu(true); 
     } 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.news_summary_tab, container, false); 

    } 

    @Override 
    public void setMenuVisibility(boolean menuVisible) { 
     super.setMenuVisibility(menuVisible); 

     if (menuVisible) { 
      Log.e("SetMenuVisibleFragmentA", menuVisible + " "); 
     } 
    } 

我一直試圖讓它工作,因爲幾天但沒有工作。我不知道這裏缺少什麼。任何在這方面的幫助,高度讚賞。

謝謝!

回答

0

你的代碼看起來幾乎沒問題。

  1. 嘗試在onCreateOptionsMenu()使用menu.clear()膨脹片段菜單newsmenu之前。
  2. onCreateOptionsMenu()中輸入一些日誌以知道該方法是否未被調用。

更新onCreateOptionsMenu()如下:

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 

     menu.clear() 

     inflater.inflate(R.menu.newsmenu, menu); 
     TextView text= null; 

     SearchView mSearchView = (SearchView) menu.findItem(R.id.search).getActionView(); 

     mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 
       Log.e("search sering....:", newText.toString()); 
       dataAdapter.getFilter().filter(newText.toString()); 
       dataAdapter.setFilterQueryProvider(new FilterQueryProvider() { 
        public Cursor runQuery(CharSequence constraint) { 
         Log.e("searched ....:", constraint.toString()); 
         return db.fetchOrdersByName(constraint.toString()); 
        } 
       }); 
       return false; 
      } 
     }); 

     super.onCreateOptionsMenu(menu, inflater); 
    } 

希望這將有助於〜

+0

謝謝。即使使用menu.clear();它沒有顯示菜單。我注意到它甚至沒有進入方法onCreateOptionsMenu(Menu ..我把相同的oncreateoptionsmenu(....)方法在我的主要活動「公共類MainActivity擴展AppCompatActivity實現TabLayout.OnTabSelectedListener {」,看看它是否可以顯示菜單但是也有代碼沒有被執行,我不知道我在哪裏犯了這個錯誤。 – Satya

相關問題