1.布局的XML文件里面添加EditText控件(省略)控件id=mSearch ListView的id=admin_lv;

2.一、获取ListView展示的数据(通过适配器获取)

二、这个是我要说的搜索功能

mSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
      
    //这个和之前的适配器不同,是搜索完成后listview
madminAdapter = new AdminManagerAdapter(AdminActivity.this, adminList);
//搜索完获取的数据
madminAdapter.setDataSource(adminList);
admin_lv.setAdapter(madminAdapter);
madminAdapter.getFilter().filter(s); if (s.length() > 0) {
admin_lv.setVisibility(View.VISIBLE);
} else {
admin_lv.setVisibility(View.GONE);
}
} @Override
public void afterTextChanged(Editable s) { }
}); 3.搜索适配的要实现:Filterable这个接口
代码如下:(其他适配的方法和之前的BaseAdapter是一样的)
//满足过滤条件的数据
private List<AdminMenager> mOriginalValues;
//过滤时候的总数据 这个是不变的数据
private List<AdminMenager> adminList;
//适配器的adpater
private List<AdminMenager> adapterList; //初始化数据 public AdminManagerAdapter(Context context,List<AdminMenager> adminList) {
    super(context);
this.adminList=adminList; mOriginalValues=new ArrayList<>();
adapterList=new ArrayList<>();
    
  
adapterList.addAll(adminList); }
@Override
public Filter getFilter() {
if (myFilter==null){
myFilter=new MyFilter();
}
return myFilter;
} //过滤数据
class MyFilter extends Filter { //执行过滤
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults results = new FilterResults();
if (constraint == null || constraint.length() == 0) {
mOriginalValues.clear();
results.values = adminList; } else {
mOriginalValues.clear();
for (Iterator<AdminMenager> iterator = adminList.iterator(); iterator
.hasNext();) {
AdminMenager name = iterator.next();
if (name.user_name.contains(constraint)) {
mOriginalValues.add(name);
}
}
results.values = mOriginalValues; }
Log.d("adapter","???result"+results);
return results; } //得到过滤结果
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
adapterList = (ArrayList<AdminMenager>) results.values; if (results.count > 0) {
notifyDataSetChanged(); } else {
notifyDataSetInvalidated();
}
}
} 注:此方法只用于搜索ListView展示的信息
祝大家好运连连

使用EditText搜索listview里面的内容,实现Listview跟随变动的情况的更多相关文章

  1. Android 根据EditText搜索框ListView动态显示数据

    根据EditText搜索框ListView动态显示数据是根据需求来的,觉得这之中涉及的东西可能比较的有意思,所以动手来写一写,希望对大家有点帮助. 首先,我们来分析下整个过程: 1.建立一个layou ...

  2. Android 依据EditText搜索框ListView动态显示数据

    依据EditText搜索框ListView动态显示数据是依据需求来的,认为这之中涉及的东西可能比較的有意思,所以动手来写一写.希望对大家有点帮助. 首先.我们来分析下整个过程: 1.建立一个layou ...

  3. Linux如何搜索查找文件里面内容

    在Linux系统当中,如何搜.索查找文件里面的内容呢? 这个应该是系统维护.管理当中遇到最常见的需求.那么下面介绍,总结一下如何搜索.查找文件当中的内容. 搜索.查找文件当中的内容,一般最常用的是gr ...

  4. listView获取item的Edit内容,listView中的edit内容在滚动时自动赋值了前面的内容

    Today I am going to explain how to create a ListView with EditText and why will we need a TextWatche ...

  5. LayoutInflater作用及使用--自定义EditText,自带清除内容按钮

    作用: 1.对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2.对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法 ...

  6. EditText搜索关键字,返回结果匹配关键字改变颜色

    自己项目 用到EditText搜索结果关键字改变颜色,就研究了一下,2种方法实现,发现一个好用的工具类,在代码中一行调用这个方法,直接实现需求. KeywordUtil.java工具类. packag ...

  7. 安卓ListView行详细内容展示页编写和下拉刷新实现

    ListView行详细内容展示页: 使用轻量级的Fragment实现Listview行内容简单的详细信息展示: 值得注意的是: 1. 主布局(打开它的Activity)必须是FrameLayout布局 ...

  8. Android常见UI组件之ListView(二)——定制ListView

    Android常见UI组件之ListView(二)--定制ListView 这一篇接上篇.展示ListView中选择多个项及实现筛选功能~ 1.在位于res/values目录下的strings.xml ...

  9. content内网,会显示内容,没有内容可地址存在就是这个情况

    漏洞地址:http://note.youdao.com/memory/?url=http://www.wooyun.org(如需登录,请注册登录) 正文预览的地方会读取URL地址的<meta n ...

随机推荐

  1. cf C. Inna and Candy Boxes

    题意:给你一个长度为n的只含有1和0的字符串,w个询问,每次询问输入l,r:在[l,r]中在l+k-1.l+2*k-1.......r的位置都必须为1,如果不为1的,变成1,记为一次操作,其它的地方的 ...

  2. 使用SetWindowPos API函数移动窗口后,还需修改Delphi的属性值,以备下次使用,否则就会出问题(不是API不起作用,而是使用了错误的坐标值)

    单独改变坐标的代码如下,可不断左移: procedure TForm1.Button1Click(Sender: TObject); begin SetWindowPos(panel1.Handle, ...

  3. PHP+Mysql-表单数据插入数据库及数据提取完整过程

    网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功 ...

  4. Lesson 6: CronTrigger

    CronTrigger is often more useful than SimpleTrigger, if you need a job-firing schedule that recurs b ...

  5. Java中的移位操作符

    记住所有的移动位数,针对的都是补码来讲的,所以要先将十进制整数转换成补码后,然后再来进行移位操作 移位操作 还要注意类型的约束条件,例如int,移动范围是0-31位,所以看补码只能看最后五位,这才是有 ...

  6. 静态与动态IP设置

    静态IP设置 netsh interface ipv4 set address name="本地连接" source=static addr=192.168.0.212 (这个地方 ...

  7. 【HDOJ】2222 Keywords Search

    AC自动机基础题. #include <iostream> #include <cstdio> #include <cstring> #include <cs ...

  8. JavaScript框架设计 第14章 动画引擎

    easing-js <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  9. 数据结构(RMQ):UVAoj 11235 Frequent values

    Frequent values You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. I ...

  10. 获取Android设备屏幕分辨率

    1.Android 4.3引入的wm工具: a.获取Android设备屏幕分辨率: adb shell wm size b.获取android设备屏幕密度: adb shell wm density ...