2015-05-25 60 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