【问题标题】:How to create nested listview with searchbar in android toolbar?如何在 android 工具栏中使用搜索栏创建嵌套列表视图?
【发布时间】:2020-03-10 08:27:32
【问题描述】:

我尝试了这段代码,但没有返回我输入的文本。 这是我的 Addtocartitems.java :

这是我的 Downloadeditems.java :

这是我的 DownloadedListAdapter2.java :

这个程序没有错误,但什么也没发生。 有人可以帮我吗?提前致谢!

【问题讨论】:

    标签: java android search toolbar


    【解决方案1】:

    在适配器类中创建列表变量

    List<DownloadedItems> downloadedItemsList= new ArrayList<>();
    

    在你的构造函数中,请调用写下这个

    public DownloadListAdapter(Context context, int resource, ArrayList<DownloadedItems> object){
        super(context,resource,object);
        this.mcontext= context;
        this.mResource=resource;
        this.downloadedItemsList= object;
    }
    

    在适配器中创建获取列表的方法

        public void  setData(List<DownloadedItems> modelList) {
        this.downloadedItemsList= modelList;
        notifyDataSetChanged();
        }
    

    现在使用新的过滤列表调用过滤方法并将该列表传递给适配器方法

    private void filter(String text) {
        List<DownloadedItems> filteredList = new ArrayList<DownloadedItems>();
        for (DownloadedItems la :langList) {
            if (la.langName.toLowerCase().startsWith(text.toLowerCase())) {
                filteredList.add(la);
            }
            adapter.setData(filteredList);
        }
    
    
    }
    

    您可以根据需要将方法 .startsWith 更改为 .Contains。此方法返回以输入的字符串开头的项目。 langList 是我已经传递给适配器以呈现的初始列表。

    la.langName.toLowerCase().startsWith
    

    这是过滤器查询,我用来比较过滤器的项目。我正在从列表中搜索语言名称。所以你可以根据你的要求进行修改。并从

    调用方法过滤器
     mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }
    
            @Override
            public boolean onQueryTextChange(String newText) {
                filter(newText)
                return true;
            }
        });
    

    【讨论】:

    • 先生,你能用java翻译吗?
    • 转成java
    • 将类 LanguageModel 替换为您的列表模型。
    • 先生,我在哪里可以添加过滤方法?
    • 在 mSearchView.setOnQueryTextListener 里面你有 adapter.getFilter().filter(newText);
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多