Я новичок в 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() {
}
})