2015-05-25 4 views
6

Я внедрил всплывающее меню в свое приложение для Android. Я создал xml для всплывающего меню, и код также отлично работает. Теперь, что я не могу понять, как обращаться с элементами контекстного меню, нажмите. Я пробовал использовать PopupMenu.OnMenuItemClickListener, но не был успешным. Как я могу это сделать?Обработка пунктов всплывающего меню нажмите

Мой код всплывающего меню

ImageButton button = (ImageButton) view.findViewById(R.id.popUp_song); 

      button.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 


        PopupMenu popup = new PopupMenu(activity, v); 
        Menu m = popup.getMenu(); 
        MenuInflater inflater = popup.getMenuInflater(); 
        inflater.inflate(R.menu.song_popup, popup.getMenu()); 

        if (audio.getDownload().equals("0")) { 

         m.removeItem(R.id.add_download); 

        } 

        popup.show(); 
       } 


      }); 

XML

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/ToolBarStyle"> 

    <item 
     android:id="@+id/add_queue" 
     android:title="Add to queue" /> 
    <item 
     android:id="@+id/play_next" 
     android:title="Add to favourite" /> 
    <item 
     android:id="@+id/add_download" 
     android:title="Download" /> 


</menu> 

ответ

10

перед показом PopupMenu добавить прослушиватель PopupMenu для обработки события щелчка.

popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

        @Override 
        public boolean onMenuItemClick(MenuItem item) { 
         Toast.makeText(getApplicationContext(), 
           item.getTitle(), Toast.LENGTH_SHORT).show(); 
         return true; 
        } 
       }); 
+0

да это сработало !! – CraZyDroiD