AndroidSearchViewonQueryTextChange不会与ObservableOnSubscribe一起工作。
创始人
2024-10-10 01:30:56
0

如果你的代码使用了 RxJava ObservableOnSubscribe 并且需要实现 Android SearchView 的 onQueryTextChange 方法,你会发现当文本发生变化时 onQueryTextChange 并不会触发。这是因为 onQueryTextChange 方法需要执行在主线程上,然而在 ObservableOnSubscribe 中的代码是在后台线程上执行的,导致无法在主线程上触发 onQueryTextChange。

为了解决这个问题,我们可以将 SearchView 的 setOnQueryTextListener 方法写在 subscribeOn(Schedulers.io()) 方法之外,这样就可以确保 onQueryTextChange 方法在主线程上执行。以下是一段示例代码:

SearchView searchView = findViewById(R.id.search_view);
Observable.create(new ObservableOnSubscribe() {
    @Override
    public void subscribe(ObservableEmitter emitter) throws Exception {
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                emitter.onNext(query);
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                emitter.onNext(newText);
                return true;
            }
        });
    }
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer() {
    @Override
    public void accept(String s) throws Exception {
        // Do something with the text
    }
});

相关内容

热门资讯

wepoke有挂!fishpo... wepoke有挂!fishpoker软件辅助(透视)固有有挂(详细辅助技巧教程)是一款可以让一直输的...
辅助透视!wepoke是真的有... 辅助透视!wepoke是真的有挂,wepoke透明挂怎么识别,详细透视分享教程一、wepoke是真的...
wepoke是真的有挂!nzt... wepoke是真的有挂!nzt德州辅助软件(透视)原先真的是有挂(详细辅助我来教教你);是一款可以让...
透视ai代打!wepoke有辅... 透视ai代打!wepoke有辅助挂,wepoke辅助德之星,详细透视靠谱教程;1)wepoke辅助德...
德州之星插件!wepoke a... 德州之星插件!wepoke app系统规律(透视)切实有挂(详细辅助解说技巧)1、超多福利:超高返利...
透视代打!wepoke插件,w... 透视代打!wepoke插件,wepooke app系统规律,详细透视揭秘教程1、起透看视 wepok...
德扑之星有作弊!来玩德州app... 您好,德扑之星有作弊这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
透视了解!wepokeai代打... 透视了解!wepokeai代打,wopoker辅助软件,详细透视透明教程1、每一步都需要思考,不同水...
aapoker挂!微扑克有机器... aapoker挂!微扑克有机器人吗(透视)切实是有挂(详细辅助解密教程)1、很好的工具软件,可以解锁...
透视辅助!wepok软件透明挂... 透视辅助!wepok软件透明挂,wepoke软件能玩吗,详细透视透明教程1、用户打开应用后不用登录就...