listview+EditText 实现过滤搜索listview中的内容
来源:互联网 发布:access2007数据库引擎 编辑:程序博客网 时间:2024/05/01 01:16
废话不说直接上代码
public class ListViewAdapter extends BaseAdapter {//集合的总数据private List<People> data;private LayoutInflater inflater;//过滤的数据private List<People> filterList;//把这个数据给adapter private List<People> myPeopleList; public ListViewAdapter(Context context, List<People> data){this.inflater=LayoutInflater.from(context);this.data=data;//这个时候把我们的一些中间变量给初始化一下 filterList = new ArrayList<People>(); myPeopleList = new ArrayList<People>(); //把我们传递过来的数据,弄到这个集合里面.保存原始集合的完整性 myPeopleList.addAll(data); }@Overridepublic int getCount() {// TODO Auto-generated method stubreturn data.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder holder;int type=getItemViewType(position);if(convertView==null){holder=new ViewHolder();convertView=inflater.inflate(R.layout.item1, null);holder.tv=(TextView) convertView.findViewById(R.id.tv1);convertView.setTag(holder);}else{holder=(ViewHolder) convertView.getTag();}return convertView;} class ViewHolder{ TextView tv; } //定义自己的过滤器 private MyFilter myfilter; public MyFilter getFilter(){ if(myfilter==null){ myfilter=new MyFilter(); } return myfilter; }class MyFilter extends Filter{@Overrideprotected FilterResults performFiltering(CharSequence charSequence) {// TODO Auto-generated method stubFilterResults results=new FilterResults();if(TextUtils.isEmpty(charSequence)){filterList.clear();results.values=data;return results;}else{filterList.clear();for(Iterator<People> iterator=data.iterator();iterator.hasNext();){ People name = iterator.next(); if (name.getName().contains(charSequence)) { filterList.add(name); }} results.values = filterList; return results; }}//筛选结果@SuppressWarnings("unchecked")@Overrideprotected void publishResults(CharSequence arg0, FilterResults arg1) {// TODO Auto-generated method stubmyPeopleList=(List<People>) arg1.values; if (arg1.count > 0) { notifyDataSetChanged(); } else { notifyDataSetInvalidated(); } } }}下面是Main_Activity
public class MainActivity extends Activity {private ListView lv;private ListViewAdapter adapter;private List<People> list;private EditText ed;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main_activity);lv=(ListView) findViewById(R.id.lv);ed=(EditText) findViewById(R.id.et);//mData=getData(); list = new ArrayList<People>(); for(int i=1;i<20;i++) { People tPeople = new People(); if(i==18||i==3||i==2){ tPeople.setName("小明"+i); }else{ tPeople.setName("小刚"+i); } list.add(tPeople); } adapter=new ListViewAdapter(this, list);lv.setAdapter(adapter);ed.addTextChangedListener(new TextWatcher() {@Override//当editText发生变化的时候public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stubadapter.getFilter().filter(arg0);}//这两个方法在这里没有什么用@Overridepublic void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {// TODO Auto-generated method stub}@Overridepublic void afterTextChanged(Editable arg0) {// TODO Auto-generated method stub}});}}
哈哈 简单吧 这是部分代码 。。
0 0
- listview+EditText 实现过滤搜索listview中的内容
- android edittext + listview 实现搜索listview中的内容
- android edittext+listview进阶 实现搜索listview中的内容 定制自己的过滤器
- EditText配合listview实现过滤
- Android自定义搜索框(EditText)的搜索功能实现,过滤ListView
- Android ListView用EditText实现搜索功能
- EditText+listview+数据库操作实现搜索功能
- 模糊搜索框 EditText动态过滤Listview并改变颜色(仿微信模糊搜索)
- EditText智能搜索点亮ListView中的被查找字符
- android 搜索框过滤 listview
- searchview 实现listview过滤
- EditText实现搜索过滤功能
- 获得listview中的edittext文字
- EditText+ListView实现AutoCompleteTextView效果
- 用edittext做自定义listview搜索过滤器
- EditText + ListView 之间的搜索配置 动态加载ListView数据
- ListView+EditText
- ListView + EditText
- 二项树与二项堆
- SQL 截取某字段第一个特殊字符(#为示例)前的所有字符,若字段里没有特殊字符(#号)则取全部字段
- refresh的停车场 (栈+队列)
- PHP_PHP开发框架-codeigniter
- 使用XIB拖出来的UIButton,selected状态下,button出现多余背景颜色
- listview+EditText 实现过滤搜索listview中的内容
- iOS textfield浅析
- 贪心法
- Java线程中断理解(interrupte)
- Centos下grep命令简介
- 【POJ 3974】 Palindrome
- POJ 2051 Argus STL 优先队列
- POJ 1149 PIGS (最大流)
- selenium CSS Selectors基础用法