繁体   English   中英

Android中的过滤器返回任何内容

[英]filters in Android returning anything

我有一个ArrayList,其中使用过滤器来获取搜索结果。 如果查询不返回任何内容并且返回结果,则我想放置文本“未找到结果”,然后删除上面的文本(noResultFoundTextView.setVisibility(View.GONE);)

您能告诉我如何实施吗?

我的菜单创建是这样完成的:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.search_menu,menu);

    MenuItem item = menu.findItem(R.id.search_menu);
    SearchView searchView = (SearchView) item.getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            mAdapter.getFilter().filter(newText);
            return false;
        }
    });

    return super.onCreateOptionsMenu(menu);
}

显示其余的代码,我可以进一步解释您要做什么。

不知道应该做什么“ public boolean onQueryTextSubmit(String query)”和“ public boolean onQueryTextChange(String newText)”,但是如果这是过滤器实现的一部分,那么如果找到了带有过滤器。

如果找到了值,则可以在下面的示例中返回true

使用列表过滤器

list.stream().filter(string -> string.contains(filterString)).findFirst().orElseGet("No Results Found");

或者,如果您收到NullPointerExceptions,请尝试

try {
    return list.stream().filter(string -> string.contains(filterString)).findFirst();
} catch (NullPointerException e) {
    return "No Results Found";
}

暂无
暂无

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

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