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
    }
});

相关内容

热门资讯

透视了解!aapoker辅助器... 透视了解!aapoker辅助器是真的吗,aapoker透视辅助,攻略方法(一贯是真的有挂);人气非常...
透视系统!德扑之星ai代打,德... 透视系统!德扑之星ai代打,德扑之星软件有猫腻吗,揭秘攻略(真是有挂)1、很好的工具软件,可以解锁游...
透视工具!微扑克有辅助透视,微... 透视工具!微扑克有辅助透视,微扑克ai辅助神器,系统教程(一向真的是有挂);无聊就玩这款微扑克有辅助...
透视最新!aapoker辅助,... 透视最新!aapoker辅助,aapoker透明挂真假,2025教程(从来真的有挂);人气非常高,a...
透视模拟器!智星德州菠萝辅助器... 透视模拟器!智星德州菠萝辅助器推荐,智星德州菠萝辅助器免费下载,靠谱教程(好像真的是有挂);透视模拟...
透视插件!wpk透视挂会被封号... 您好,wpk透视挂会被封号吗这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
透视黑科技!红龙扑克辅助器第一... 透视黑科技!红龙扑克辅助器第一视角,红龙扑克机制,wpk教程(原生是真的有挂);透视黑科技!红龙扑克...
透视智能ai!微扑克如何让系统... 您好,微扑克如何让系统发好牌这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多...
透视安卓版!德扑ai软件购买,... 透视安卓版!德扑ai软件购买,德扑之星软件辅牌器,解密教程(好像是真的有挂)1、金币登录送、破产送、...
透视系统!wepoke怎么看有... 透视系统!wepoke怎么看有没有外挂,wepoke ai辅助,细节方法(往昔真的是有挂);致您一封...