android通过上下文菜单获取ListView中被选中的条目的信息?

当空皓月 发布于 2013/12/27 16:02
阅读 5K+
收藏 1

对ListView绑定了上下文菜单(删除、修改),该怎样获取Listview被选中项的信息啊?谢谢

//注册上下文菜单
  registerForContextMenu(mListView);

/**
  * 创建上下文菜单
  */
 @Override
 public void onCreateContextMenu(ContextMenu menu, View v,
   ContextMenuInfo menuInfo)
 {
        new MenuInflater(this).inflate(R.menu.context_menu, menu); 
        super.onCreateContextMenu(menu, v, menuInfo);
 }

/**
  * 上下文菜单的事件处理
  */
 @Override
 public boolean onContextItemSelected(MenuItem item)
 {
 // AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo)item.getMenuInfo(); 
  //System.out.println("position:"+menuInfo.position);
  switch (item.getItemId())
  {
  case R.id.menuitem_del://在这里怎样该获取要删除的ListView的选中项的内容呢?
   break;
  case R.id.menuitem_update:
  break;

  default:
   break;
  }
  return super.onContextItemSelected(item);
 }

上下文菜单的Xml文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menuitem_del"
        android:title="删除">
    </item>
    <item
        android:id="@+id/menuitem_update"
        android:title="修改">
    </item>

</menu>

 

加载中
0
千里草Darin
AdapterView.AdapterContextMenuInfo menuInfo =
                (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

menuInfo.position   //这个就是当前的index
0
当空皓月
当空皓月

引用来自“千里草Darin”的答案

AdapterView.AdapterContextMenuInfo menuInfo =
                (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

menuInfo.position   //这个就是当前的index
恩,谢谢,我的ListView的数据是通过getContentResolver.query来查询SD卡中的所有图片的信息,
我想通过上下文菜单来删除SD卡中的图片
getContentResolver().delete(uri,MediaStore.Images.ImageColumns.TITLE+"=?",String[] selectionArgs);
而selectionArgs就是ListView中被选中的图片,怎样获取选中图片的title呢,谢谢!
0
千里草Darin

引用来自“当空皓月”的答案

引用来自“千里草Darin”的答案

AdapterView.AdapterContextMenuInfo menuInfo =
                (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

menuInfo.position   //这个就是当前的index
恩,谢谢,我的ListView的数据是通过getContentResolver.query来查询SD卡中的所有图片的信息,
我想通过上下文菜单来删除SD卡中的图片
getContentResolver().delete(uri,MediaStore.Images.ImageColumns.TITLE+"=?",String[] selectionArgs);
而selectionArgs就是ListView中被选中的图片,怎样获取选中图片的title呢,谢谢!
通过index来获取当前选中项的信息,信息难道没有包含TITLE么?Media库里应该都包含了这些信息,再查询一遍就行了吧
当空皓月
当空皓月
谢谢哈,尝试一下
0
当空皓月
当空皓月
解决办法:getContentResolver().delete(uri,"_id=?",new String[]{String.valueOf(menuInfo.id)});
返回顶部
顶部