首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android的Expandable上删除上下文菜单选中的项目?

如何在Android的Expandable上删除上下文菜单选中的项目?
EN

Stack Overflow用户
提问于 2011-12-01 00:42:32
回答 1查看 1.6K关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);

  ExpandableListView.ExpandableListContextMenuInfo info =
      (ExpandableListView.ExpandableListContextMenuInfo) menuInfo;
  int type =
      ExpandableListView.getPackedPositionType(info.packedPosition);

      int group =
      ExpandableListView.getPackedPositionGroup(info.packedPosition);

      int child =
      ExpandableListView.getPackedPositionChild(info.packedPosition);

      //Only create a context menu for child items

      if (type == 1) {
      //menu.setHeaderTitle("Action");
      menu.add(0, MENU_EDIT, 0, "Edit");
      menu.add(0, MENU_DELETE, 1, "Delete");
      }
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo();
    AdapterContextMenuInfo info1 = (AdapterContextMenuInfo) item.getMenuInfo();

        int groupPos = 0, childPos = 0;

        int type = ExpandableListView.getPackedPositionType(info.packedPosition);

        if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
        groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
        childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);
        }

        return true;

  switch (item.getItemId()) {
  case MENU_DELETE:

    return true;
  }

  return(super.onOptionsItemSelected(item));
}

我想删除该项,如何填写case MENU_DELETE:?这是可扩展列表视图和上下文菜单的组合,我想通过上下文菜单删除子菜单。Thx以获取帮助和解释

EN

回答 1

Stack Overflow用户

发布于 2011-12-01 11:30:33

看看这个不错的东西Android Context Menu

代码语言:javascript
复制
@Override
 public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
        .getMenuInfo();

    switch (item.getItemId()) {
      case R.id.remove_item:
       quoteResult.remove(info.position);
       ((StockQuoteAdapter)getListAdapter()).notifyDataSetChanged();
      return true;
     }
  return false;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8329608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档