2017-02-22 3 views
0
Abfrage

Ich bin ein einfaches Beispiel von RealmRecyclerViewAdapter mit Anzeigen MyObjects zu handhaben:RealmResult anpassen, ohne

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. 

Obwohl dies für einfache Abfragen funktioniert, ich einen Filter haben, die zu komplex für einen Bereich Abfrage ist, so dass ich Ich muss mich selbst filtern, indem ich die Ergebnisse wiederhole. Aber da ich ein Objekt nicht von RealmResults "entfernen" kann (wie es aus dem Realm entfernt wird), müsste ich mit einer Liste arbeiten, was bedeutet, dass ich den Adapter neu schreiben müsste.

Meine Frage ist, gibt es eine Möglichkeit, RealmResult in einer Weise anzupassen, die nicht auf einer Realm-Abfrage basiert?

+1

'Gibt es eine Möglichkeit, RealmResult auf eine Weise anzupassen, die nicht auf einer Realm-Abfrage basiert?' Nein, aber vielleicht könnte es einen Weg geben, abhängig von der Abfrage? – EpicPandaForce

+0

Möglicherweise: MyObject speichert einen Zeitstempel in Millis, und ich muss unabhängig von dem Tag zwischen 9 und 17 Uhr für jeden Datensatz abfragen. – jwBurnside

+1

Sie sollten ein 'Stunden'-Feld hinzufügen, das Sie beim Festlegen des Datums festlegen. Dann können Sie unabhängig vom Tag zwischen 9 und 17 abfragen. – EpicPandaForce

Antwort

0

Schreiben Sie, was @EpicPandaForce vorschlägt.

ein zusätzliches Feld (hour), um Ihre Modellklasse hinzufügen:

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

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

    // ... 
} 

Sie jetzt hour in Ihren Abfragen verwenden können.