我试图做一些对我有一个sqlite
数据库中的项目排序方法。起初,我有这个RecyclerView
从数据库加载数据。 Rows http://i58.tinypic.com/ibvvr8.jpgsqlite的排序方法
通过拖动手柄,将行拖到所需的位置。我想要做的事情是保存位置,并能够得到它,并重新安排行一模一样的下一次我启动应用程序。
我试图通过类的onItemMove
方法检测何时移动一行,并保存交换位置的行的新位置,但位置变得混乱,并且我没有得到期望的结果。也许解决方案是不错,但我的排序方法搞砸了。这就是我的数据传递到适配器之前实现
public static ArrayList<Package> orderPackages(ArrayList<Package> packages) {
for(int i = 0; i < packages.size(); i++) {
Package p = packages.get(i);
int desiredPosition = p.getPosition();
if(desiredPosition != -1) {
if(desiredPosition < packages.size()) {
Package tempPackage = packages.get(i);
packages.remove(i);
packages.add(tempPackage.getPosition(), tempPackage);
}
}
}
return packages;
}
那么,有没有更好的解决方案,以记住行感动所以位置下一次我启动应用程序的行会被放置在相同的位置在适配器?