正如您在下面的代码中看到的,当我长按ListView中的项目时,我会看到一个弹出菜单,其中包含操作项目的选项(删除,更新等)。
问题是我在item.toString上使用我的函数而不是项目本身。 我如何获得项目本身,并将其作为我的函数中的参数?
onCreateContextMenu:
public void onCreateContextMenu(final ContextMenu menu, final View v, final ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if (v.getId() == R.id.db_list_view) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_list, menu);
}
}
onContextItemSelected:
public boolean onContextItemSelected(android.view.MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
Object obj = lv.getItemAtPosition(info.position);
String nameToString = obj.toString();
if (item.getTitle().equals("Delete")) {
deletePlayerFromLongClick(nameToString);
} else if (item.getTitle().equals("Update")) {
updatePlayerFromLongClick(nameToString);
} else if (item.getTitle().equals("Change Host/Guest")) {
changeMembership(nameToString);
}
return true;
}
答案 0 :(得分:2)
喜欢:
yourAdapter.getItem(info.position);
或
((YourAdapter)lv.getAdapter()).getItem(position);
甚至更简单,
listOfItem.get(info.position);