Размер RealmResults возвращается Zero

У меня небольшая проблема, и я не смог найти никаких результатов. Да, я тоже занимался исследованиями.

У меня есть переменная mResults = RealmResults <Drop>;

и это имеет данные, как вы можете видеть на картинке ниже

введите описание изображения здесь

Но когда я набираю >> mResults.size <<, он возвращает 0. В чем может быть проблема? Кстати. Im работает в Android с помощью kotlin.

Предмблема находится в Recyclerview getItemCöunt

ActivityMain ::::

Realm.init(this) val configuration = RealmConfiguration.Builder().build() Realm.setDefaultConfiguration(configuration) mRealm = Realm.getDefaultInstance() val results:RealmResults<Drop> = mRealm.where(Drop::class.java).findAll() mToolbar = findViewById<Toolbar>(R.id.toolbar) mRecycler = findViewById<RecyclerView>(R.id.rv_drops) val manager = LinearLayoutManager(this) mRecycler.layoutManager = manager mRecycler.adapter = AdapterDrops(this, results) 

 open class Drop : RealmObject { private var what: String? = null @PrimaryKey private var added: Long? = null private var whenT: Long? = null private var completed: Boolean? = null constructor(){} constructor(what: String, added: Long, whenT: Long, completed: Boolean) : super() { this.what = what this.added = added this.whenT = whenT this.completed = completed } fun getWhat(): String? { return what } fun setWhat(what: String) { this.what = what } fun getAdded(): Long? { return added } fun setAdded(added: Long) { this.added = added } fun getWhenT(): Long? { return whenT } fun setWhenT(whenT: Long) { this.whenT = whenT } fun getCompleted(): Boolean? { return completed } fun setCompleted(completed: Boolean) { this.completed = completed } 

}

 class AdapterDrops: RecyclerView.Adapter<AdapterDrops.DropHolder> { private var mInflater:LayoutInflater private var mResults:RealmResults<Drop> constructor(context:Context, results: RealmResults<Drop>){ mInflater = LayoutInflater.from(context) mResults = results } override fun onBindViewHolder(holder: DropHolder?, position: Int) { val drop:Drop = mResults[position]!! holder!!.mTextWhat.setText(drop.getWhat()) } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): DropHolder { val view = mInflater.inflate(R.layout.row_drop, parent, false) val holder = DropHolder(view) return holder } override fun getItemCount(): Int { return mResults.size <<<<< pröblem } class DropHolder: RecyclerView.ViewHolder { var mTextWhat:TextView constructor(itemView: View):super(itemView){ mTextWhat = itemView.findViewById<TextView>(R.id.tv_what) } } } 

Спасибо, парни.

Попробуйте это, поскольку вы извлекаете все записи из db

 var mResults:OrderedRealmCollection<Drop> = Realm.getDefaultInstance().where(Drop::class.java).findAll() 

Определите класс Drop с пустым конструктором.

Удалите приведенный ниже код из активности и вставьте их в свой класс приложения

  //region initialise Realm for application Realm.init(this) //endregion //region creating realm config val realmConfig:RealmConfiguration = RealmConfiguration.Builder() .name("kotlin_demo.realm") .deleteRealmIfMigrationNeeded() .build() //endregion //region for development purpose getting new realm db each time Realm.deleteRealm(realmConfig) Realm.setDefaultConfiguration(realmConfig) //endregion 

в kotlin нет необходимости определять методы set getter для класса Drop, поэтому удалите это