要素の1つを長押しするとContextMenuを作成するListViewがあります。このコンテキストメニューを作成したListViewで選択された要素(選択されたMenuItemではない)を見つけるにはどうすればよいですか?これが私のコードです:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, final View v,
ContextMenuInfo menuInfo) {
menu.setHeaderTitle("Actions");
android.view.MenuItem remove = menu.add("Remove");
final int selectedItem = ((ListView)v).getSelectedItemPosition();
remove.setOnMenuItemClickListener(new OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(android.view.MenuItem item) {
doSomething(listAdapter.getItem(selectedItem)); // NPE here
return true;
}
});
}
});
コンテキストメニューから選択されたアイテムではなく、このコンテキストメニューをトリガーしたListViewアイテムが必要であることに注意してください。