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