public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)
   {
   menu.setHeaderTitle("请选择");
       menu.add(0, 0, 0, "发邮件");
       //看收藏表中是否已有此项,有就显示"从收藏夹移除",没有就显示"加入收藏夹");
       int i=inOrNotCollect(CreateTemp.COLLECT_TYPE+" = '"+1+"'"+CreateTemp.COLLECT_CPID+" = '"+2+"'"
                    +CreateTemp.COLLECT_LOCALID+" = '"+2+"'");
       if(i>0)
       {
        menu.add(0, 1, 1, "从收藏夹移除");
       }
       else
       {
        menu.add(0, 1, 1, "加入收藏夹");
       }
       super.onCreateContextMenu(menu, v, menuInfo);
   }

解决方案 »

  1.   

    楼主添加一个长按事件的监听就可以了List.setOnItemLongClickListener(new OnItemLongClickListener() {  @Override  public boolean onItemLongClick(AdapterView ada, View view,  int index, long longIndex) {  fileList.showContextMenu();  return true;  }  });
      

  2.   

    楼主是啥意思啊? 是不是想知道 用户按下menu后,到底是选的“从收藏夹移除” 还是 “加入收藏夹” 吗?再调用一次 
    int i=inOrNotCollect(CreateTemp.COLLECT_TYPE+" = '"+1+"'"+CreateTemp.COLLECT_CPID+" = '"+2+"'"
      +CreateTemp.COLLECT_LOCALID+" = '"+2+"'");判断一下不久知道了吗?
      

  3.   

    先从收藏表中查有这项吗,有就显示“从收藏夹移除”,没有就显示“加入收藏夹”,长按的时候要把这项的COLLECT_TYPE,CreateTemp.COLLECT_CPID CreateTemp.COLLECT_LOCALID 拿到,就是问怎么获得这项的这些值,
      

  4.   

    ((AdapterContextMenuInfo)menuInfo).position
      

  5.   

    谢谢, int m=((AdapterContextMenuInfo)menuInfo).position;