したがって、現在の私の問題は、コンテキスト アクション バーを表示する ListView 内の項目を長くクリックしていることです。onItemLongClick に渡される id は、mActionModeCallback の on ActionItemClicked() メソッドで使用したい変数です。ユーザーがアイテムのリストを編集している場合、ユーザーが「編集」または「削除」アクションをクリックしたときに、何らかの形でデータベース内のその行の ID にアクセスする必要があるため、これはかなり一般的な手順のようです。
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> p, View view, int pos, long id) {
//The id of the row in the database
long variableThatIWantToPassToCallback = id;
mActionMode = getActivity().startActionMode(mActionModeCallback);
view.setSelected(true);
return true;
}
});
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
public boolean onCreateActionMode(ActionMode mode, Menu menu) {}
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {}
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
//I would like access to the id of the clicked item here, NOT item.getItemId()
}
public void onDestroyActionMode(ActionMode mode) {}
};