我有一个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);
} "
答案 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
}