Kotlin中的RxTextView无法从KFunction1中提取字符串

一茶匙

在Java中,我使用RxTextView并在Fragment中调用.subscribe()来调用String并将其作为参数传递给Presenter中的方法。一切正常。

Java:

        compositeDisposable.add(
                RxTextView.textChanges(searchEditText)
                        .map(CharSequence::toString)
                        .debounce(500, TimeUnit.MILLISECONDS)
                        .distinctUntilChanged()
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribeOn(Schedulers.computation())
                        .subscribe(query -> {
                            presenter.setQueryFilter(query); // query parameter: String
                        })
        );

我对Kotlin中的RxTextView感到困惑,因为在函数.subscribe(...)中,value参数是一个通用变量,而不是像Java中的String。

科特林:

    compositeDisposable.add(
            RxTextView.textChanges(activity.findViewById(R.id.searchEditText))
                    .map {CharSequence::toString}
                    .debounce(500, TimeUnit.MILLISECONDS)
                    .distinctUntilChanged()
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribeOn(Schedulers.computation())
                    .subscribe { query ->
                        getPresenter().setQueryFilter(query.toString()) //query parameter: KFunction1<CharSequence,String>! 
                        //query.toString gives a such result: fun kotlin.Any.toString(): kotlin.String
                    }
    )

我怎样才能从EditText获得合适的字符串值,并将其与Java中的.subscibre()连接起来?

我将.map {CharSequence :: toString}替换为:.map { it.toString() }

蓬皮

更改

map {CharSequence::toString}

map (CharSequence::toString)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章