繁体   English   中英

如何使用 SearchView 过滤列表视图

[英]How to filter a listview using SearchView

我正在使用 searchView 过滤我的列表视图。 但问题是只有当我写下完整的元素名称时,才会过滤列表。 例如:我有一个用户列表 - {“Bob”、“John”、“James”}。 如果我在 searchView 中写 J,我希望看到 John 和 James。 但我得到一个祝酒词,这个名字不在列表中。 请帮忙。

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            if (users.contains(query)){
                arrayAdapter.getFilter().filter(query);
            } else {
                Toast.makeText(ChatListActivity.this, "There is no user with this username, please search again.", Toast.LENGTH_SHORT).show();
            }
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            if (users.contains(newText)){
                arrayAdapter.getFilter().filter(newText);
            } else {
                Toast.makeText(ChatListActivity.this, "There is no user with this username, please search again.", Toast.LENGTH_SHORT).show();
            }
            return false;
        }
    });

请尝试使用这样的FilterListener

@Override
public boolean onQueryTextChange(String query) {
    Filter.FilterListener listener = new Filter.FilterListener() {
        @Override
        public void onFilterComplete(int count) {
            // conditions to check whether your list is empty
        }
    };
    newsListAdapter.getFilter().filter(query, listener);
    return false;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM