Android Kotlin / Anko - notifyDataSetChanged () не обновляется - PullRequest
0 голосов
/ 24 августа 2018

notifyDataSetChanged (), я использую в активности пользовательского интерфейса ...

Он "обновляет" вид, если я открываю и закрываю его ... читая его из RealmDB

что я делаю не так?

заранее спасибо

Francesco

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
        }
    }
}

}

1 Ответ

0 голосов
/ 24 августа 2018

Попробуйте это

class MainActivityUI : AnkoComponent<MainActivity> {

   override fun createView(ui: AnkoContext<MainActivity>)= with (ui) {
     val list = RouRealmManager().findAll()           
     val mAdapter = RouAdapter(list)
     list.addChangeListener(RealmChangeListener {
         mAdapter.notifyDataSetChanged()
     }) 
...