gpt4 book ai didi

android - 如何使用 ItemTouchHelper 和光标实现拖放

转载 作者:太空狗 更新时间:2023-10-29 13:56:56 27 4
gpt4 key购买 nike

我一直在尝试使用 ItemTouchHelper 将拖放功能实现到我的笔记应用程序中,但是我正在努力弄清楚如何让它与光标一起工作。我目前正在使用游标加载器和内容提供程序从数据库中检索存储的笔记数据,适配器从返回的游标接收数据,如图所示。

public void onBindViewHolder(RecyclerViewAdapter.MyViewHolder holder, int position) {
mCursor.moveToPosition(position);
String title = mCursor.getString(mCursor.getColumnIndex(NotesContract.COL_TITLE));
String body = mCursor.getString(mCursor.getColumnIndex(NotesContract.COL_BODY));
holder.titleText.setText(title);
holder.bodyText.setText(body);
}

我遇到的问题是,当我拖放它们时,我不知道如何跟踪列表中移动项目的位置。我无法更改游标中行的顺序。我只看到适配器的数据源是列表的示例。我考虑过将我的光标数据复制到 Note 对象列表中,以便我可以重新排列它们以反射(reflect)通过拖放所做的更改,但这似乎使您通过使用光标和光标加载器获得的所有 yield 都落空了。此外,当游标加载器完成加载时,它将再次返回一个包含所有结果的新游标,并相应地填充适配器,因此如果我的新列表丢失,对顺序所做的任何更改都会丢失。

有谁知道该怎么做,还是我使用游标和加载器的方式完全错误?任何帮助将非常感激。谢谢!

最佳答案

我通过在表中添加一个名为 sort_order 的列来跟踪排序顺序来完成此操作。当您拖放时,您会在 ItemTouchHelper.SimpleCallback 的 onMove 方法中更新 sort_order。

关于android - 如何使用 ItemTouchHelper 和光标实现拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751330/

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