如何在android中获取所选项目名称表单上下文菜单

时间:2013-02-09 16:33:30

标签: android

我在我的活动中使用了Android列表视图......

现在我需要获取从列表中选择的项目的名称...

这是我的菜单创建代码

public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
       super.onCreateContextMenu(menu, v, menuInfo);         


     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.activity_main, menu); //select layout which should pop up in context menu

     menu.add("Delete");
     menu.add("Rename");

}

我需要的是在以下函数中获取列表视图所选项目名称的方法,该函数捕获上下文菜单上的单击。

@Override
public boolean onContextItemSelected(MenuItem item) 
{

     super.onContextItemSelected(item);


    if(item.getTitle()=="Delete"){
       //slected item's name in string varible here??
    }
    if(item.getTitle()=="Rename"){
            //slected item's name in string varible here??
    }
    return true;

}

2 个答案:

答案 0 :(得分:6)

获取itemId使用此:

AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

您可以通过

获取商品的ID
info.id

如果您想接收姓名,您还可以使用info.position来获取列表中项目的位置。通过该位置,您可以从listView获取项目以获取项目的名称

答案 1 :(得分:0)

public boolean onContextItemSelected(MenuItem item){         AdapterView.AdapterContextMenuInfo itemInfo =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();         int itemId = itemInfo.position; //实现我们的逻辑

    if (item.getTitle()=="Add") {
        Toast.makeText(this, "Item id [" + itemId + "]", Toast.LENGTH_SHORT).show();


    }
    return true;

}