从上下文菜单中获取项目ID

时间:2011-02-17 17:49:35

标签: java android

嘿,人们, 我试图得到项目的id,在这种情况下是一个表格行,长按以显示上下文菜单。到目前为止,这是我的代码。

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
  super.onCreateContextMenu(menu, v, menuInfo);
  MenuInflater inflater = getMenuInflater();
  inflater.inflate(R.menu.context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
  AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
  switch (item.getItemId()) {
      case R.id.delete:

          deleteitem(id); //ID of item should be passed to method deleteitem
          Toast.makeText(this, "delete",
                    Toast.LENGTH_LONG).show();
        return true;
      default:
        return super.onContextItemSelected(item);
  }
}

如您所见,我需要将表行的id传递给另一个方法。我尝试过使用info,但它始终为null。显然我在这里遗漏了一些东西,所以希望你能指出我正确的方向。感谢。

2 个答案:

答案 0 :(得分:0)

检查AdapterContextMenuInfo.id字段。

答案 1 :(得分:0)

AdapterContextMenuInfo有一个id和position字段,对应于所选适配器中的项目。

所以在你的代码中用你替换你的deleteItem。

deleteItem(info.id);

应该有用。