我正在使用CursorLoader和ViewPager。我在屏幕上有一些按钮(put-to-favorites-button),它使用内容解析器更新数据库中的列,该内容解析器触发ContentProvider中的update()。然后更新导致重新查询以更新所做的更改。所有标准。
这当然会导致我通过random()子句按顺序给出不同排序的行,并导致屏幕“消失”。
任何想法如何解决这个问题?我真的想保留随机排序功能。
class MyContentProvider extends ContentProvider {
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
Cursor cursor = db.query(TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(resolver, uri);
return cursor;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
int count = db.update(TABLE_NAME, values, selection, selectionArgs);
resolver.notifyChange(uri, null);
return count;
}
}
答案 0 :(得分:1)
答案 1 :(得分:0)
正如zapl建议的那样,我最终要做的就是添加一个列。这将保留myOrder,它将在onCreate中填充随机值,然后只需通过myOrder执行选择