RealmResults大小正在返回零
我有一个小问题,我找不到任何结果。 是的,我也做了一些研究。
我有一个variablesmResults = RealmResults ;
这有数据,你可以看到下面的图片
但是当我键入>> mResults.size <<返回0.问题是什么? 顺便说一句。 我在Android使用kotlin工作。
pröblem在RecyclerviewgetItemCöunt中
ActivityMain ::::
Realm.init(this) val configuration = RealmConfiguration.Builder().build() Realm.setDefaultConfiguration(configuration) mRealm = Realm.getDefaultInstance() val results:RealmResults = mRealm.where(Drop::class.java).findAll() mToolbar = findViewById(R.id.toolbar) mRecycler = findViewById(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 { private var mInflater:LayoutInflater private var mResults:RealmResults constructor(context:Context, results: RealmResults){ 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(R.id.tv_what) } } }
多谢你们。
尝试这一点,因为你是从数据库中获取所有记录
var mResults:OrderedRealmCollection = 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中,不需要为Drop类定义getter setter方法,所以删除它
- Kotlin需要JDK吗?
- 在android java类中使用Kotlin扩展
- Gradle sinc以kotlin扩展失败。 输入字符串:“”在build.gradle文件模块(应用程序)
- Android Studio转换为Kotlin:在某些情况下使用@JvmStatic
- 无法在Android中为Kotlin中的Activity类编写主要构造函数
- 智能投到BootsrapButton是不可能的,因为endtrip是这个时候改变了的可变属性
- 从Android Studio运行时,Kotlin Kapt不显示数据绑定错误
- 如何正确使用Kotlin Android的URL
- Kotlin – NoSuchMethodError实例化Throwable时