微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在rxjava中,android studio kotlin代码中出现错误

如何解决在rxjava中,android studio kotlin代码中出现错误

代码在Android Studio中给出错误 问题是什么?你能帮助我吗? 我想将其转换为Kotlin代码。在android studio中将其转换为错误

请帮助我转换为kotlin代码

observable = Observable.zip(Observable.create(new ObservableOnSubscribe<Tbl_Chat>() {
                    @Override
                    public void subscribe(ObservableEmitter<Tbl_Chat> emitter) throws Exception {
                        if (chat_list!= null) {
                            for (Tbl_Chat chat : chat_list) {

                                emitter.onNext(chat);
                            }
                        }
                        emitter.onComplete();
                    }
                }),Observable.interval(800,TimeUnit.MILLISECONDS),(obs,timer) -> obs)
                .doOnNext(item -> {
                });
        observer = new disposableObserver<Tbl_Chat>() {
            @Override
            public void onNext(Tbl_Chat chat) {


                chatList_adapter.addItem(chat);
                chat_list.add(chat);
                recyclerView.scrollToPosition(chatList_adapter.getItemCount() - 1);

            }

            @Override
            public void onError(Throwable e) {
                Log.e(TAG,"onError: " + e.getMessage());
            }

            @Override
            public void onComplete() {
                Log.e(TAG,"onComplete: ");
            }
        };

        disposable = observable
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribeWith(observer);

解决方法

那呢?

缺少代码

    internal class Tbl_Chat()

转换后的代码

    val chat_list = listOf<Tbl_Chat>(Tbl_Chat(),Tbl_Chat(),Tbl_Chat())

    // fromIterable instead of Observable#create
    val iterator = Observable.fromIterable(chat_list)
    val interval = Observable.interval(800,TimeUnit.MILLISECONDS)

    val obs = Observable.zip(iterator,interval,BiFunction { chat: Tbl_Chat,time: Long -> chat })
            .doOnNext { _ -> /* whatever */ }

    val disposable = obs
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            // subscribe instead of subscribeWith
            .subscribe({ _ ->
                // your side-effects for onNext
            },{ t: Throwable? -> /* logging */ },{ /* logging */ });

我不得不说,Observable#zip可能不是您想要的。您最有可能要与LatestFrom / CombineLatest

一起使用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。