Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将Rx应用改装为Kotlin的lambda_Android_Kotlin - Fatal编程技术网

Android 将Rx应用改装为Kotlin的lambda

Android 将Rx应用改装为Kotlin的lambda,android,kotlin,Android,Kotlin,我不熟悉在Kotlin中使用lambda表达式。我成功地使用Rx apply进行网络呼叫,并在Kotlin中进行了改进,但IDE让我感到温暖,我的代码可以转换为lambda。你能用下面的代码给我一些想法吗 disposable = publishSubject .debounce(300, TimeUnit.MILLISECONDS) .switchMap(object: Function<String, Observable<Arra

我不熟悉在Kotlin中使用lambda表达式。我成功地使用Rx apply进行网络呼叫,并在Kotlin中进行了改进,但IDE让我感到温暖,我的代码可以转换为lambda。你能用下面的代码给我一些想法吗

disposable = publishSubject
            .debounce(300, TimeUnit.MILLISECONDS)
            .switchMap(object: Function<String, Observable<ArrayList<Contact>>> {
                override fun apply(t: String): Observable<ArrayList<Contact>> {
                    return apiService.getContactList("", t)
                }
            })
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(object: DisposableObserver<ArrayList<Contact>>() {
                override fun onNext(t: ArrayList<Contact>) {
                    adapter?.addItem(t)
                }

                override fun onError(e: Throwable) {
                    Toast.makeText(this@MainActivity, e.message, Toast.LENGTH_SHORT).show()
                }
                override fun onComplete() {

                }
            })
disposable=publishSubject
.debounce(300,时间单位为毫秒)
.switchMap(对象:函数{
覆盖乐趣应用(t:字符串):可观察{
返回apiService.getContactList(“,t)
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribowith(对象:DisposableObserver(){
覆盖下一页(t:ArrayList){
适配器?.addItem(t)
}
覆盖有趣的错误(e:可丢弃){
Toast.makeText(this@MainActivity,e.message,Toast.LENGTH\u SHORT).show()
}
覆盖有趣的onComplete(){
}
})

如果您的IDE显示它可以转换为
lambda
,它可能会代替您进行转换

以Android Studio为例。下面是代码的外观以及如何将其转换为lambda

所以如果你点击下面有波浪线的那条线。您将在其旁边获得黄色羔羊图标

如果单击
Convert to lambda
,IDE将把代码转换为与lambda等效的代码

同样地,您可以在Mac上使用快捷方式
选项+Enter