2011-02-17 72 views
1

嘿人, 我想获取该项目的id,在这种情况下是一个表格行,这是长时间按下以调出上下文菜单。这是我的代码到目前为止。从上下文菜单中获取项目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传递给另一个方法。我试过使用信息,但它始终为空。很显然,我在这里错过了一些东西,所以希望你能够指引我朝着正确的方向前进。谢谢。

回答

0

AdapterContextMenuInfo具有与所选适配器中的项目对应的ID和位置字段。

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

deleteItem(info.id); 

应该工作。

+1

yh但由于某些原因info始终为空 – crazyfool 2011-02-17 18:16:31