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. 工作总结:MFC调用Windows自带新建、保存对话框代码

    保存: void CExample17Dlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler cod ...

  2. Hybrid UI framework shootout: Ionic vs. Famo.us vs. F7 vs. OnsenUI

    1 Introduction In the past 2 years I’ve been working intensively on mobile applications, mostly hybr ...

  3. 关于SVN的操作批处理示例

    关于SVN的操作批处理示例 为了一句话:不要动手做机器能够做的事情. 天天工作用svn,更新啥的打开目录啥的动作天天在重复.每次写些命令也蛮无聊的,不说了,看下面: 1 @echo off 2 rem ...

  4. FFT(快速傅里叶变换):HDU 4609 3-idiots

    3-idiots Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  5. 数据结构:(平衡树,链表)BZOJ 1588[HNOI2002]营业额统计

    1588: [HNOI2002]营业额统计 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 12173  Solved: 4354[Submit][Sta ...

  6. C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常,不存在从对象类型System.Windows.Forms.DateTimePicker到已知的托管提供程序本机类型的映射。

    一:C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常 其实,这个问题与C#的垃圾回收有关.垃圾回收器管 理所有的托管对象,所有需要托管数据的.NET语言(包括 C#)都受运行库的 垃圾回收器 ...

  7. H-Index ——Leetcode

    Given an array of citations (each citation is a non-negative integer) of a researcher, write a funct ...

  8. Java---计算机贷款支付额计算(用对话框实现)

    本例演示如何编写程序来计算贷款支付问题. 下面是编写程序的步骤: 1.提示用户输入年利率.年数和贷款总额 2.利用年利率算出月利率 3.通过前面的公式计算月支付额. 4.计算总支付额,它是月支付额乘以 ...

  9. 高效算法——M 扫描法

    In an open credit system, the students can choose any course they like, but there is a problem. Some ...

  10. [工具] Numpy

    虽说功能强大,要什么基本都有,但感觉它提供的功能还不如Matlab好记呢...Anyway,首先import numpy as np 1. 操作基本单元,矩阵 np.array(list) / np. ...