2017-02-22 1 views
0

를 쿼리하지 않고 RealmResult 조정 :이 간단한 쿼리를 위해 작동하지만내가 표시 MyObjects 처리 RealmRecyclerViewAdapter의 간단한 인스턴스를 사용하고

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를 조정하는 방법이 있습니까? 아니요.하지만 쿼리에 따라 방법이 다를 수 있습니다. – EpicPandaForce

+0

아마도 : MyObject는 밀리 초 단위로 시간 소인을 저장하므로, 일과 관계없이 오전 9 시부 터 오후 5시 사이의 모든 레코드를 조회해야합니다. – jwBurnside

+1

날짜를 설정할 때 설정 한 '시간'필드를 추가해야합니다. 그러면 하루에 상관없이 9에서 17 사이의 쿼리를 수행 할 수 있습니다. – EpicPandaForce

답변

0

@EpicPandaForce에서 무엇을 제안하는지 알려주십시오.

는 모델 클래스에 추가 필드 ( hour)를 추가 : 이제 쿼리에서 hour을 사용할 수 있습니다

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

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

    // ... 
} 

.

관련 문제