gpt4 book ai didi

android - 将 ListView 项目的 id 传递给 ActionMode.Callback 对象

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:41 25 4
gpt4 key购买 nike

所以我现在的问题是,现在我长时间单击 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) {}
};

最佳答案

执行此操作的正确方法是在 onItemCheckedStateChanged 中调用 mActionMode.setTag("1"),然后从 onActionItemClicked 函数调用mode.getTag();

关于android - 将 ListView 项目的 id 传递给 ActionMode.Callback 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com