AndroidStudio中ArrayAdapter的GetFilter()方法不起作用
创始人
2024-08-20 13:30:16
0

当我们使用过滤器(Filter)来搜索、筛选ListView条目时,我们通常会在ArrayAdapter中调用GetFilter()方法。但是,有时候我们会发现GetFilter()方法并没有起到作用。这可能是因为我们没有正确重写ArrayAdapter的getView()方法导致的。

在正确重写getView()方法之后,我们需要在ArrayAdapter中添加一些额外的代码来确保GetFilter()方法正常工作。具体来说,我们需要重写getFilter()方法并返回一个新的过滤器对象,如下所示:

@Override
public Filter getFilter() {
    Filter filter = new Filter() {
        @Override
        protected FilterResults performFiltering(CharSequence constraint) {
            FilterResults filterResults = new FilterResults();
            // 过滤后的数据
            List filteredList = new ArrayList<>();
            // 实现过滤逻辑
            // ...
            filterResults.values = filteredList;
            filterResults.count = filteredList.size();
            return filterResults;
        }

        @Override
        protected void publishResults(CharSequence constraint, FilterResults results) {
            // 更新数据
            clear();
            addAll((List) results.values);
            notifyDataSetChanged();
        }
    };
    return filter;
}

在performFiltering()方法中,我们实现过滤逻辑并返回过滤后的数据,赋值给FilterResults对象。在publishResults()方法中,我们将过滤后的数据更新到ArrayAdapter中,并调用notifyDataSetChanged()方法来通知ListView更新显示内容。

这样,我们就可以正确使用过滤器来搜索、筛选ListView条目了。

相关内容

热门资讯

推荐一款!菠萝神辅助器app,... 推荐一款!菠萝神辅助器app,雀友会广东潮汕辅助软件,详细方法(有挂总结)亲,关键说明,雀友会广东潮...
科普分享!阿拉斗牌辅助,贪玩透... 科普分享!阿拉斗牌辅助,贪玩透视辅助,详细技巧(有挂方略)1、完成贪玩透视辅助辅助器v3.3的残局,...
必知教程!边锋嘉兴麻将辅助器,... 必知教程!边锋嘉兴麻将辅助器,微信微乐跑得快游戏辅助脚本,详细攻略(果真有挂);1、该软件可以轻松地...
我来向大家传授!围棋辅助器乐乐... 我来向大家传授!围棋辅助器乐乐,九天大厅辅助器,详细技巧(有挂工具)1、进入到围棋辅助器乐乐是否有挂...
技术分享!广西老友玩友破解,科... 技术分享!广西老友玩友破解,科乐游戏辅助脚本下载,详细攻略(讲解有挂)1、下载好科乐游戏辅助脚本下载...
玩家攻略!新财神辅助器,情怀四... 玩家攻略!新财神辅助器,情怀四川辅助哪里可以装,详细插件(竟然有挂)1、下载好情怀四川辅助哪里可以装...
我来教教你!三哥玩app辅助,... 我来教教你!三哥玩app辅助,微乐江苏自建房辅助app,详细方法(竟然有挂)1、微乐江苏自建房辅助a...
一起来探讨!wepoker辅助... 一起来探讨!wepoker辅助器,吉祥填大坑辅助器攻略,详细攻略(有挂功能)1、吉祥填大坑辅助器攻略...
一分钟了解!微乐麻将脚本掌上程... 一分钟了解!微乐麻将脚本掌上程序,牵手游戏辅助器,详细工具(有挂工具)一、微乐麻将脚本掌上程序可以开...
一秒答解!微信小程序中至赣牌圈... 一秒答解!微信小程序中至赣牌圈辅助,蘑菇云辅助脚本,详细脚本(有挂教程)1、微信小程序中至赣牌圈辅助...