我有一個使用CursorLoader
的圖庫應用程序,允許按特定元數據對圖像進行排序。排序是在創建CursorLoader
時定義的。CursorLoader排序順序和更新
// Returns a new CursorLoader
return new CursorLoader(
this, // Parent activity context
Meta.Data.CONTENT_URI, // Table to query
projection, // Projection to return
selection, // No selection clause
selectionArgs, // No selection arguments
sort // Default sort order
);
如果用戶選擇圖像,它們被帶到觀看者。他們有機會操縱元數據。這會導致一個自動度假村,這可能會造成混亂。所選圖像可能會根據排序從中間移動到最後,而用戶不會意識到這一點,他們會在他們認爲可能的時候無法輕掃。
最初是否有任何方法對CursorLoader
進行排序,然後讓它保持_id
的順序,從此,即使排序所依據的數據發生了變化?
編輯:可能的解決方案
我能想到的唯一的事情就是維持「秩序」列觀看者的活動將整理並「選擇」列中,將處理的選擇。
在啓動查看器之前,我將循環訪問插入'訂單'計數器的光標。我會然後批量插入。查看器活動應保持先前的順序,而不管查看器中元數據的更改。
兩個額外的列感覺有點像黑客,但它應該工作。我唯一能想到的其他事情是爲查看器管理一個單獨的自定義數據源,但這有它自己的問題。
希望有一個更好的方法來做到這一點。