ListView的列表中,每个项都有一个长按操作,也就是说这个ListView有一个OnCreateContextMenuListener的事件。
现在创建了菜单,但是怎么把被长按的那个ListView的Item值传递给onContextItemSelected操作?
我现在连获取ListView的Item值都没办法进行,想用v来操作,但失败了。

解决方案 »

  1.   

    listView.setOnItemLongClickListener
      

  2.   

    我要使用CreateContext方法才行,因为这个菜单里有多个操作,不是只有一个。
    还是说你的方法是把创建菜单的方法写到setOnItemLongClick里?
      

  3.   

    在OnCreateContextMenuListener的
    public void onCreateContextMenu(final ContextMenu menu, final View v, final ContextMenuInfo menuInfo)函数里面可以获取到
    final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;int mListPos = info.position;
    这个就是你的item的Position
      

  4.   

    获取到这个Position之后要怎么转成View?
    因为我要获取的这个数据在View里,不能纯粹的使用position来判断。
      

  5.   

    可以了,找到转换的方法了。
    info.targetView就是我要的View。
      

  6.   


    这个 在onContextItemSelected中怎么获得啊?
      

  7.   

    在onContextItemSelected中public boolean onContextItemSelected(MenuItem item) {
    AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    return super.onContextItemSelected(item);
    }
      

  8.   


    你好,能把onContextItemSelected里的完整代码贴出来吗?不知道怎么用targetView,谢谢
      

  9.   

    搞定了public boolean onContextItemSelected(MenuItem item) {
         // 得到当前被选中的item信息
         AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();         
         String title = ((TextView)menuInfo.targetView.findViewById(R.id.tvname)).getText().toString();
         Toast.makeText(SimpleContactActivity.this,"内容为:" + title,Toast.LENGTH_LONG).show(); // 显示那条数据
      

  10.   

    android listview综合使用示例_结合数据库操作和listitem单击长按等事件处理
    http://blog.csdn.net/lk_blog/article/details/7537200
      

  11.   

    请问你最后是怎么获得的item信息呀,那个targetView获得的是ContextMenu的信息呀。
      

  12.   

    final View v里就是被选中的itemview