ListView - onContextItemSelected操纵项目,而不是toString
问题描述:
正如你可以在下面的代码中看到的,当我在ListView中的一个项目LongClick时,我得到一个弹出菜单选项来操纵项目(删除,更新等)。ListView - onContextItemSelected操纵项目,而不是toString
问题是我在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;
}
答
不喜欢:
yourAdapter.getItem(info.position);
或
((YourAdapter)lv.getAdapter()).getItem(position);
或更简单,
listOfItem.get(info.position);
你能更具体吗?在这种情况下**我的适配器**是什么? – GuyShoham
@ user8465954你必须使用适配器为你的listview权利?或者你可以尝试一下Pavneet_Singh的建议。 –
@Pavneet_Singh是啊,这可能会更方便和简单:) –