2017-01-09 1 views
0

나는 ToolbarMenuItemPopupMenu을 표시해야하는 응용 프로그램을 구축하고 있습니다. 문제는 MenuItem에서 2 번 클릭해야 PopupMenu을 볼 수 있다는 것입니다.MenuItem을 두 번 클릭하여 활성화해야합니다.

내 코드 :

@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

와 코드의 당신의 블록을 교체하려고 @Tasd에 당신은'OnClickListener' 필요하지 않습니다 당신의 메뉴 아이템 - 클릭 된 아이템은 메소드 인자'onOptionsItemSelected (MenuItem item)'에 제공된'MenuItem'입니다 –

+0

당신을 구해줘서 고맙습니다 !!! –

답변

0

당신은 당신의 메뉴 항목을 다시 OnClickListener를 설정하지 않아도 :

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

      return true; 
+0

첫 번째 문에서 작성한 mFilterMenuItem 객체를 전달할 수있는 –

+0

에 View가 고정 될 것으로 기대합니다. – khetanrajesh

0

@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

관련 문제