Не удается обновить представление списка в DisposableObserver? - PullRequest
0 голосов
/ 02 мая 2018

Я новичок в RxJava и RxAndroid. Я пытаюсь найти ключевое слово в массиве, и если какие-либо данные найдены, я пытаюсь обновить в виде списка с помощью адаптера. Но приложение застряло, а не фильм дальше. Не могли бы вы помочь с этим требованием? Я прилагаю то, что я пытался ...

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

  val dataArray = ArrayList<CisData>();
        var cisDataAdaptor : CisDataAdaptor ;
        var isFirst = true
        Observable.create(ObservableOnSubscribe<CisData> { e ->

            var word = "Test"

            val search = ".*$word.*"

            val regex = Pattern.compile(search)

            for (index in resources.getStringArray(R.array.list).indices) {

                if (regex.matcher(resources.getStringArray(R.array.list).get(index)).find()) {

                    e.onNext(CisData(resources.getStringArray(R.array.list_of_kural).get(index), (index + 1).toString()))

                }
            }

            e.onComplete()
        })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(
                        object : DisposableObserver<CisData>() {
                            override fun onNext(response: CisData) {

                                dataArray.add(response)

                                if (isFirst) {

                                    cisDataAdaptor = CisDataAdaptor(context, dataArray)
                                    list_view!!.adapter = cisDataAdaptor
                                    isFirst = false

                                } else {
                                    cisDataAdaptor!!.notifyDataSetChanged()
                                }
                            }

                            override fun onError(e: Throwable) {
                            }

                            override fun onComplete() {
                            }

                        })
...