2017-02-22 73 views
0

我使用RealmRecyclerViewAdapter的一個簡單的實例來處理顯示MyObjects:調整RealmResult沒有查詢

public class MyObjectsAdapter extends RealmRecyclerViewAdapter<MyObject, MyObjectsAdapter.ViewHolder> { 

    public interface Listener { 
     void onMyObjectClicked(Long myObjectId); 
    } 

    private Context context; 
    private Listener listener; 

    public MyObjectsAdapter(Context context, OrderedRealmCollection<MyObject> data, Listener listener) { 
     super(context, data, true); 
     this.context = context; 
     this.listener = listener; 
    } 

... // Rest of the code. 

雖然這適用於簡單的問題,我有一個過濾器,是一種境界查詢太複雜了,所以我必須通過循環結果來過濾自己。但是由於我不能從RealmResults中「移除」一個對象(因爲它將它從領域中移除),我需要使用List,這意味着我將不得不重寫適配器。

我的問題是,有沒有辦法以不基於領域查詢的方式調整RealmResult?

+1

'有沒有一種方法可以調整RealmResult的方式,而不是基於領域查詢?'nope,但也許可能有一種方法取決於查詢嗎? – EpicPandaForce

+0

可能:MyObject存儲毫秒中的時間戳,我需要在上午9點和下午5點之間查詢任何記錄,而不管一天中的哪一天。 – jwBurnside

+1

您應該添加設置日期時設置的「小時」字段。然後無論何時都可以在9到17之間進行查詢。 – EpicPandaForce

回答

0

寫出@EpicPandaForce建議的內容。

添加一個額外的字段(hour)到你的模型類:

class MyObject extends RealmObject { 
    private Date timestamp; 
    private int hour; 

    public setTimestamp(Date timestamp) { 
     setHour(timestamp.getHours()); 
     this.timestamp = timestamp; 
    } 

    // ... 
} 

您現在可以使用在查詢hour