从编辑文本过滤列表视图

| 我有一个编辑文本作为搜索栏,还有一个列表视图可以过滤我键入的文本,但不幸的是,它不过滤列表视图。我已将自定义数组适配器与对象Friend一起使用。朋友对象具有名称,地址和电话号码,但我只想过滤其名称。在我的活动中...
searchBarTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    friendListAdapter.getFilter().filter(s);
}}
在适配器中时...     @Override     公共过滤器getFilter(){         Log.d(TAG,\“开始getFilter \”);         if(newFilter == null){             newFilter = new Filter(){                 @Override                 受保护的void publishResults(CharSequence约束,FilterResults结果){                     // TODO自动生成的方法存根                     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()。     

要回复问题请先登录注册