android - 识别上下文菜单的列表项的 ID

标签 android contextmenu listitem

我有一个扩展 Activity 的 View 。 ListView 将显示多个列表项。当用户长按时,我想向他们展示一个上下文菜单,允许他们选择编辑、删除等...然后识别被选为要执行操作的项目的列表项。

在 onCreate 我有:

listView.setAdapter(adapter);
listView.setOnItemClickListener(onListClick);
listView.setOnItemLongClickListener(onListLongClick);
registerForContextMenu(listView);

我有一个 onCreateContextMenu 方法

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Context Menu");
    menu.add(0, v.getId(), 0, "Edit");
    menu.add(0, v.getId(), 0, "Delete");

}

还有 onContextItemSelected

@Override
public boolean onContextItemSelected(MenuItem item) {

    if (item.getTitle() == "Edit") {
        // edit action
    } else if (item.getTitle() == "Delete") {
        // delete action
    } else {
        return false;
    }
    return true;
}

我不确定从这里到哪里才能获得正确的行/列表项。

最佳答案

您可以使用AdapterContextMenuInfo 请引用Link-1从您提供的代码,

public boolean onContextItemSelected(MenuItem item) {

    if (item.getTitle() == "Edit") {
        AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
        editInfo(info.position);
    } else if (item.getTitle() == "Delete") {
        // TODO Delete action
    } else {
        return false;
    }

    return true;
}

关于android - 识别上下文菜单的列表项的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778218/

相关文章:

java - 数组列表 java 错误

java - 在 Java/Android 中将 double 格式化为至少一位有效数字

ios - 如何将自定义 View 添加到上下文菜单 iOS

java - 使用 selenium 从上下文菜单中选择一个选项,sendKeys 不起作用

android - Textview 的 LinkMovementMethod 阻止列表项触摸事件

android - ListView 中 ListItem 的内容垂直居中

java - 当我在 Android 中的按钮子类上设置内容描述符时,TalkBack 上会附加单词 "button"

java - Android OpenGL ES 2.0 只限于内存中的 16 个纹理?

android - onTextContextMenuItem 不会在自定义菜单项上调用

Delphi ListView拖放整行