Filter list view from edit text(从编辑文本中过滤列表视图)
问题描述
我有一个作为搜索栏的编辑文本和一个过滤我输入的文本的列表视图,但不幸的是,它不会过滤列表视图.我使用了带有对象 Friend 的自定义数组适配器.朋友对象有名字、地址和电话号码,但我只想过滤它的名字.在我的活动中...
searchBarTextView.addTextChangedListener(new TextWatcher() {@覆盖public void onTextChanged(CharSequence s, int start, int before, int count) {friendListAdapter.getFilter().filter(s);}}在适配器中...
<前>@覆盖公共过滤器getFilter(){Log.d(TAG, "开始 getFilter");if(newFilter == null) {新过滤器 = 新过滤器() {@覆盖protected void publishResults(CharSequence 约束,FilterResults 结果) {//TODO 自动生成的方法存根Log.d(TAG, "发布结果");notifyDataSetChanged();}
<代码> @Override受保护的FilterResults performFiltering(CharSequence约束){Log.d(TAG, "执行过滤");约束 = 约束.toString().toLowerCase();Log.d(TAG, "约束:"+约束);列出<ChatObject>filtersFriendList = new LinkedList();for(int i=0; i
有人可以帮我如何正确显示过滤后的数组适配器吗?我认为 notifyDataSetChanged 没有被调用.谢谢.
我的问题解决了,发现我要重写 getCount() 和 getItem().
I have an edit text as a search bar and a list view that filters the text that I typed but unfortunately, it doesn't filter the list view. I have used an customize array adapter with object Friend. Friend object has name, address and phone number but I only want to filter its name. In my activity...
searchBarTextView.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
friendListAdapter.getFilter().filter(s);
}}
While in adapter...
@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;
}
Could someone please help me how to correctly show the filtered array adapter? I think the notifyDataSetChanged is not invoked. Thanks.
My problem is solved, found out that I have to override getCount() and getItem().
这篇关于从编辑文本中过滤列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:从编辑文本中过滤列表视图
基础教程推荐
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01