如何在android中创建动态上下文菜单?

时间:2010-09-02 23:12:41

标签: android contextmenu android-arrayadapter listadapter

@Override  
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  

        super.onCreateContextMenu(menu, v, menuInfo);  
        menu.setHeaderTitle("Selection Options");  
        menu.add(0, v.getId(), 0, "Remove");  
    }  

我希望我的菜单说“删除AAPL”

我会从我的数组适配器获取字符串AAPL,但我不确定如何从此方法访问我的数组适配器索引。

2 个答案:

答案 0 :(得分:5)

如果您将listviews与自定义对象一起使用,请执行以下示例:

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

    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
    MyObject obj = (MyObject) myListView.getItemAtPosition(info.position);

    menu.setHeaderTitle("Selection Options");  
    menu.add(0, v.getId(), 0, "Remove " + obj.name); 
}

答案 1 :(得分:2)

menuInfo投射到AdapterView.AdapterContextMenuInfo个对象。在那里,您可以获得position中长期点击的项目的idListView