请问各位大神,怎么在contextmenu中获取listview的item索引啊?(触摸屏长按)悲催的我只能用setItemOnLongClick加AlertDialog.Builder实现了……求各位大神帮忙解答!!

解决方案 »

  1.   


    // 上下文菜单
    LV_MyList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) 
    {
    AdapterContextMenuInfo acm = (AdapterContextMenuInfo)menuInfo;
    SelectedIndex = acm.position - 1;  //这里就可以得到listview的item索引
    }
    }
      

  2.   

    哦,原来要在listview的方法内部定义匿名类再定义onCreateContextMenu()方法啊!我以前用的是Activity的方法.
    感谢飘红!!顺便问下ContextMenu也在里面定义了吗?跟菜单响应事件的方法能连接上吗?还有怎么结帖啊~谢谢piaohong!!!
      

  3.   

    完整的
    // 上下文菜单
    LV_MyList.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) 
    {
    AdapterContextMenuInfo acm = (AdapterContextMenuInfo)menuInfo;
    SelectedIndex = acm.position - 1;
    ListItem item = list_GroupItem.get(SelectedIndex);
    if(item.mType == 0)
    {
    GroupInfo sg = (GroupInfo)list_GroupItem.get(SelectedIndex).mMap.get(-1);
    menu.setHeaderIcon(android.R.drawable.ic_dialog_alert);
    menu.setHeaderTitle("Title");
    menu.add(0, Menu.FIRST + 2, 2, R.string.str_MarkasRead);
    menu.add(0, Menu.FIRST + 3, 3, R.string.str_MarkasUnread);
    menu.add(0, Menu.FIRST + 4, 4, R.string.str_GroupReset);
    menu.add(0, Menu.FIRST + 5, 5, R.string.str_Delete);
    }
    }
    });  
    /**
     * 上下文菜单处理
     */
    @Override
    public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    GroupInfo sg = (GroupInfo)list_GroupItem.get(SelectedIndex).mMap.get(-1);

    switch (item.getItemId()) {
    case Menu.FIRST + 2:
    break;
    case Menu.FIRST + 3:
    break;
    case Menu.FIRST + 4:
    break;
    case Menu.FIRST + 5:
    break;
    }

    mAdapter_ListGroup.notifyDataSetChanged();
    return super.onContextItemSelected(item);
    }