在android中使用特定的contextmenu和listview特定项

时间:2015-03-03 12:54:26

标签: android listview android-activity override contextmenu

我有一个ListView,我设置了一个上下文菜单,以便在长按listview项时显示。但我想为不同的listview项目提供不同的菜单?

代码:

protected void onCreate(Bundle savedInstanceState) {
    // other stuff
    registerForContextMenu(listView);  
}

onCreateContextMenu:

   @Override
   public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
       super.onCreateContextMenu(menu, v, menuInfo);  
       menu.setHeaderTitle("Context Menu");  
       menu.add(0, v.getId(), 0, "Buy");  
       menu.add(0, v.getId(), 0, "Remove");  
       menu.add(0, v.getId(), 0, "Wishlist");  
   }  

某些项目应该有BuyRemove,但他们可能有both

我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

你试过这个:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle("Context Menu");

    if(shouldHaveBuyButton)
    {
        menu.add(0, v.getId(), 0, "Buy");  
    }
    if(shouldHaveRemoveButton)
    {
        menu.add(0, v.getId(), 0, "Remove");  
    } 
    menu.add(0, v.getId(), 0, "Wishlist");  
}  

shouldHaveButton逻辑取决于您的应用。如果您可以发布更多有关它的代码,我们可以帮助您更多