java - 在 SearchView 中限制 onQueryTextChange

标签 java android search searchview android-search

什么是“节流”onQueryTextChange 以便我的 performSearch() 方法每秒只调用一次而不是每次用户键入时调用的最佳方法?

public boolean onQueryTextChange(final String newText) {
    if (newText.length() > 3) {
        // throttle to call performSearch once every second
        performSearch(nextText);
    }
    return false;
}

最佳答案

如果您使用的是 Kotlin 和协程,您可以执行以下操作:

var queryTextChangedJob: Job? = null

...

fun onQueryTextChange(query: String) {

    queryTextChangedJob?.cancel()
    
    queryTextChangedJob = launch(Dispatchers.Main) {
        delay(500)
        performSearch(query)
    }
}

关于java - 在 SearchView 中限制 onQueryTextChange,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955109/

相关文章:

java - Spring Data JPA 与 QueryDSL、聚合函数的计数问题

java - 方法体的参数列表怎么可能有一个类?

java - 如何使用通过对象收集的数据填充 arrayList。 (安卓)

PHP结果页面显示在同一页面上

c++ - 如何在不到 1 秒的时间内运行此代码?

java - java中是否可以从对象中删除属性(变量)?

android - 'android:animateLayoutChanges="true"' 仍然有效吗

android - 在 android 中滚动 listView 时重新加载图像

复制到图库的Android透明图像获得纯黑色背景

AngularJS 选择 - 匹配第一个字符