2016-03-24 32 views
2

Realm veritabanından ilk N öğesini nasıl seçebilirim. Şimdi, N elemanlarını seçmek için bu kodu kullanın:Android Realm ilk öğeyi bulun

Realm.getDefaultInstance() 
.where(MyObject.class) 
.findAllSorted("myField", Sort.DESCENDING) 

Ama bu seçme işlemi çok uzun. SQL 'LIMIT' işlem analoguna ihtiyacım var.

+0

Bu çözümde bir çözüm var: http://stackoverflow.com/a/39689393/2002079 – ahmadalibaloch

cevap

1

Basit bölge

int N=10; // whatever value you want 
Realm mRealm=Realm.getDefaultInstance(); 

RealmResults<Example> list= mRealm.where(Example.class).findAll(); 
list.subList(0,N); 
+1

list.sublist, RealmResult olarak çalışmayan Liste koleksiyonunu döndürecektir. –

+0

yes List geri dönecektir .... eğer ReamResults isterseniz o zaman Android'de realm tarafından bunun için doğrudan bir çözüm yoktur – saksham

0

Olası yinelenen Ben zaten bu yana bu yüzden Buraya çözüm yolladı: Limit Realm results

Elde edilen çözümü çözdüm İlk N elemanlarını alıp istiyorsanız Basitçe aşağıdaki gibi alan adı ile gelen ve sayımı geçmesi https://realm.io/docs/java/latest

sorgusu "arasında" kullanarak pek çok gün sonra arife bu resmi dokümanlar bulunduğu haliyle

realm.where(clazz).between("count",0,1000).findAll(); 

nerede,

"sayılan" = Alan adı (pojo yani değişken adı)
"0" = Menzil itibaren
"1000" = Aralık için

Örneğin: Yukarıdaki sorgu ilk önce 0 ile 1000 arasında RealmResults olarak getirilecektir.

Not: Yukarıdaki çözüm, yalnızca satır sayısıyla benzersiz bir kimliğiniz varsa çalışır. Benim durumumda, değerleri Realm'ye yerleştirmeden önce manuel olarak sayım değerini ekledim.