上下文菜单项需要建议

时间:2012-05-24 09:33:52

标签: android

我有一个XML布局,它有两个编辑文本字段,一个用于“标题”,另一个用于“故事”,当用户在这些文本字段中输入数据时,按下后退按钮,条目被保存在列表视图中作为标题集。列表视图存在于活动中,例如A1。现在A1扩展了Activity。此外,只要“长按”列表中的项目,就会出现上下文菜单,其中包含编辑,删除和读取按钮。现在,如果按下编辑按钮,我需要打开另一个活动,该活动可以编辑与单击项目对应的文本字段中输入的数据。此外,我还需要在列表中单击该项目的ID和位置。我正在使用ListView类型的列表变量来添加我的适配器。另外我在“public boolean onContextItemSelected(MenuItem item)”过程中检查上下文菜单的编辑,删除和读取选项,如何获取id和位置在上下文菜单的编辑,读取和删除选项中单击了该项目?

这里有一些活动代码A1:       “         static id_item_clicked;

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // here arg3 is the id of the item which is pressed
    registerForContextMenu(arg1);
    final long row_passed = arg3;
    Cursor c = (Cursor) arg0.getItemAtPosition(arg2);
    title = c.getString(c.getColumnIndex(DataHolder.KEY_TITLE));
    story = c.getString(c.getColumnIndex(DataHolder.KEY_STORY));
            ........

@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    id_item_clicked = arg3;
    return false;
}


    @Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    // TODO Auto-generated method stub
    super.onCreateContextMenu(menu, v, menuInfo);
    menu.add("EDIT");
    menu.add("READ");
    menu.add("DELETE");
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    if (item.getTitle() == "EDIT") {

        int position = list.getSelectedItemPosition();
        long item_id = list.getSelectedItemId();


    }
    if (item.getTitle() == "READ") {

    }
    if (item.getTitle() == "DELETE") {

    }
    return super.onContextItemSelected(item);
} "

1 个答案:

答案 0 :(得分:1)

您需要使用AdapterContextMenuInfo获取上下文菜单信息,然后info.id将为您提供行ID:

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    long rowid = info.id    // This is your row id
    // Your code here
}