gpt4 book ai didi

android - 从编辑文本中过滤 ListView

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:05 24 4
gpt4 key购买 nike

我有一个作为搜索栏的编辑文本和一个过滤我输入的文本的 ListView ,但不幸的是,它不过滤 ListView 。我使用了带有对象 Friend 的自定义数组适配器。 friend 对象有姓名、地​​址和电话号码,但我只想过滤它的名字。在我的 Activity 中...

searchBarTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
friendListAdapter.getFilter().filter(s);
}}

在适配器中...

    @Override    public Filter getFilter() {        Log.d(TAG, "begin getFilter");        if(newFilter == null) {            newFilter = new Filter() {                @Override                protected void publishResults(CharSequence constraint, FilterResults results) {                    // TODO Auto-generated method stub                    Log.d(TAG, "publishResults");                    notifyDataSetChanged();                }

@Override
protected FilterResults performFiltering(CharSequence constraint) {
Log.d(TAG, "performFiltering");

constraint = constraint.toString().toLowerCase();
Log.d(TAG, "constraint : "+constraint);

List<ChatObject> filteredFriendList = new LinkedList<ChatObject>();

for(int i=0; i<friendList.size(); i++) {
Friend newFriend = friendList.get(i);
Log.d(TAG, "displayName : "+newFriend.getDisplayName().toLowerCase());
if(newFriend.getDisplayName().toLowerCase().contains(constraint)) {
Log.d(TAG, "equals : "+newFriend.getDisplayName());
filteredFriendList.add(newFriend);
}
}

FilterResults newFilterResults = new FilterResults();
newFilterResults.count = filteredFriendList.size();
newFilterResults.values = filteredFriendList;
return newFilterResults;
}
};
}
Log.d(TAG, "end getFilter");
return newFilter;
}

有人可以帮我如何正确显示过滤后的数组适配器吗?我认为未调用 notifyDataSetChanged。谢谢。

最佳答案

我的问题解决了,发现我必须覆盖 getCount()getItem()

关于android - 从编辑文本中过滤 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5658751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com