2017-01-09 100 views
0

我正在構建一個應用程序,在該應用程序中我必須在Toolbar中顯示MenuItem中的PopupMenu。問題是我必須在MenuItem中點擊2次,以便我可以看到PopupMenuMenuItem需要點擊2次才能激活

我的代碼:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.lobby_activity_menu, menu); 


     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     mFilterMenuItem = findViewById(R.id.action_search_filter_menu_item); 
     switch (item.getItemId()) { 
      case R.id.action_search_menu_item: { 
       Toast.makeText(this, "Search button clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
      case R.id.action_search_filter_menu_item:{ 

       mFilterMenuItem.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         TileMenu tileMenu = new TileMenu(GuestActivity.this, v, R.menu.filter_menu); 
         Log.e("MENU ITEM", mFilterMenuItem.toString()); 
        } 
       }); 
       return true; 
      } 
      default: { 
       return super.onOptionsItemSelected(item); 
      } 
     } 
    } 

如何解決它與1次點擊來激活?

+0

免去您的代碼塊。您不需要'OnClickListener'您菜單項 - 被點擊的項目是在方法參數'onOptionsItemSelected(MenuItem項目)' –

+0

提供的'MenuItem'謝謝你隊友保存的一天! –

回答

0

你不必在你的菜單項,再次創造了onClickListener:

case R.id.action_search_filter_menu_item: 
       TileMenu tileMenu = new TileMenu(GuestActivity.this, R.menu.filter_menu); 

      return true; 
+0

它期望一個視圖被錨定到 –

+0

您可以傳遞您在第一個語句中創建的mFilterMenuItem對象。 – khetanrajesh

0

@Tasd嘗試用這種

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     mFilterMenuItem = findViewById(R.id.action_search_filter_menu_item); 
     switch (item.getItemId()) { 
      case R.id.action_search_menu_item: { 
       Toast.makeText(this, "Search button clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
      case R.id.action_search_filter_menu_item:{ 

       Toast.makeText(this, "Search filter button clicked", Toast.LENGTH_SHORT).show(); 
       return true; 
      } 
      default: { 
       return super.onOptionsItemSelected(item); 
      } 
     } 
    } 
+0

你從哪裏得到v? –

+0

試試這個。檢查吐司消息的發生,它應該與第一次點擊本身一起工作 – ChaitanyaAtkuri

相關問題