【发布时间】:2018-08-24 10:08:18
【问题描述】:
notifyDataSetChanged() ,我在 UI 活动中使用...
如果我打开和关闭它,它会“刷新”视图...从 RealmDB 读取它
我做错了什么?
提前致谢
弗朗西斯科
class MainActivityUI : AnkoComponent<MainActivity> {
override fun createView(ui: AnkoContext<MainActivity>)= with (ui) {
val list: ArrayList<RouletteRealmObject> = ArrayList(RouRealmManager().findAll())
val mAdapter = RouAdapter(list)
verticalLayout {
linearLayout {
lparams(width = matchParent, height = wrapContent)
button("ADD") {
onClick {
alert {
var newRouName: EditText? = null
var newRouCasino: EditText? = null
customView {
verticalLayout {
textView("NEW ROULETTE")
newRouName = editText { hint = "Name" }
newRouCasino = editText { hint = "Casino" }
}
}
positiveButton("OK") {
RouRealmManager().insert("${newRouName!!.text}", "${newRouCasino!!.text}")
toast("new roulette ${newRouName!!.text} form casino ${newRouCasino!!.text}")
mAdapter.notifyDataSetChanged()
}
}.show()
}
}.lparams(width = matchParent, height = wrapContent)
}
recyclerView {
lparams(width = matchParent, height = wrapContent)
layoutManager = LinearLayoutManager(ctx)
adapter = mAdapter
}
}
}
}
【问题讨论】:
-
因为您将 RealmResults 中的所有内容复制到 ArrayList 中,而 Realm 不会更新。
-
首先感谢 EpicPandaForce 的回答,我明白了你的意思,但我不明白:使用“mAdapter.notifyDataSetChanged()”不应该自动调用“mAdapter = RouAdapter(list)”,因此“ArrayList(RouRealmManager().findAll())”?这不是让领域更新列表吗?
标签: android kotlin realm notifydatasetchanged anko