1》效果如下:

执行搜索:

2》布局文件如下:

res/layout/main_activity.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity"><EditTextandroid:id="@+id/search_et"android:hint="@string/search_et_hint"android:layout_width="match_parent"android:layout_height="wrap_content" /><ListViewandroid:id="@+id/content_lv"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView></LinearLayout>

3》MainActivity.java

package com.sohu.cxc.edittextsearchdemo;import android.os.Message;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;import java.util.ArrayList;
import java.util.logging.Handler;public class MainActivity extends ActionBarActivity {private static final String TAG = "MainActivity";//声明控件private EditText search_et;private ListView content_lv;//ListView 中要填充的数据private String[] listItemValues = {"Java", "JavaSE", "JavaEE", "Oracle 8","Oracle 9i", "Oracle 10g"};private ArrayAdapter<String> listViewAdapter;private android.os.Handler myHandler;private static final int MSG_SINGAL = 1001;private static final String MSG_KEY = "MainActivity.MSG_KEY";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initViews();}//初始化控件、变量并对注册相应的事件private void initViews() {search_et = (EditText) findViewById(R.id.search_et);content_lv = (ListView) findViewById(R.id.content_lv);//注册事件search_et.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {Message msg = new Message();msg.what = MSG_SINGAL;Bundle data = new Bundle();data.putString(MSG_KEY, s.toString());msg.setData(data);myHandler.sendMessage(msg);Log.d(TAG, "----send:" + s.toString());}@Overridepublic void afterTextChanged(Editable s) {}});listViewAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItemValues);//注册Adaptercontent_lv.setAdapter(listViewAdapter);//handlermyHandler = new android.os.Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case MSG_SINGAL://todorefreshListView(msg.getData().getString(MSG_KEY));break;default:break;}}};}//根据搜索字符(串)更新ListView显示数据private void refreshListView(String searchString) {Log.d(TAG, "+++++++get:" + searchString);if (searchString == null || searchString.trim().length() == 0) {//搜索字符串为空时,显示全部listViewAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listItemValues);content_lv.setAdapter(listViewAdapter);}ArrayList<String> tmpList = new ArrayList<String>();for (String s : listItemValues) {if (s.toLowerCase().contains(searchString.toLowerCase())) {//ListView 数据项中包含搜索字符串(不区分字符大小)tmpList.add(s);}}/*if (tmpList.size() == 0)return;*/listViewAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, tmpList);content_lv.setAdapter(listViewAdapter);content_lv.invalidateViews();}
}

实现类似Android联系人搜索功能相关推荐

  1. android代码查找快捷键是什么,Android Studio搜索功能(查找功能)及快捷键图文详解(示例代码)...

    1.在当前窗口查找文本[Ctrl+F] F3 向下查找关键字出现位置 Shift+F3 向上一个关键字出现位置 2.在当前工程内查找文本[Ctrl+Shift+F] 先会弹出一个对话框,直接点击[fi ...

  2. Android实现搜索功能并本地保存搜索历史记录

    本案例实现起来很简单,所以可以直接拿来嵌入项目中使用,涉及到的知识点:  - 数据库的增删改查操作  - ListView和ScrollView的嵌套冲突解决  - 监听软键盘回车按钮设置为搜索按钮  ...

  3. Android通讯录开发之通讯录联系人搜索功能最新实现,kotlin入门到精通pdf

    '\u5940', '\u97a5', '\u513f', '\u53d1', '\u5e06', '\u531a', '\u98de', '\u5206', '\u4e30', '\u8985', ...

  4. android mysql 搜索功能_android利用数据库实现搜索联想功能

    [实例简介] android利用数据库实现搜索联想功能.主要实现的效果是和google百度搜索一样,实现联想功能. [实例截图] [核心代码] 4e431bd8-d287-4028-8476-7510 ...

  5. ionic2实现通讯录,联系人搜索功能

    contact.html文件内容: <ion-header><ion-toolbar ><ion-searchbar (ionInput)="getItems( ...

  6. 接入科大讯飞语音听写,增加语音动画,类似京东语音搜索功能

    前言:小白第一次接入科大讯飞语音听写,接入还是比较简单的,先看效果图无UI界面 Demo地址拿去 效果图有两部分,一是接入科大讯飞语音听写功能,可以实现将语音转换成文字. 二是看到的语音音量动画效果, ...

  7. android studio搜索功能实现,Android Studio查找功能(搜索功能)及快捷键

    Linux Shell 截取字符串 Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var ...

  8. android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...

    Android ActionBar搜索功能用法详解 本文实例讲述了Android ActionBar搜索功能用法.分享给大家供大家参考,具体如下: 使用ActionBar SearchView时的注意 ...

  9. Android简单实现搜索功能 显示清除历史搜索记录

    本文主要为大家分享了Android实现搜索功能,并且可以实时显示搜索的历史记录,根据输入的内容去模糊查询,供大家参考,界面图如下. 本案例实现起来也非常的简单,所以可以直接拿来嵌入项目中使用,主要涉及 ...

最新文章

  1. 批处理文件中判断是否64位系统
  2. Keil中调试时Watch窗口变量不实时显示
  3. SSH之IDEA2017整合Struts2+Spring+Hibernate
  4. 高并发下的接口幂等性解决方案!
  5. 【项目管理】项目裁剪解读
  6. Qt 中使用dll文件的舒服用法 generateDocumentation()函数 乱码解决
  7. 在Windows 64位操作系统安装Weblogic的注意事项
  8. 27 MM配置-采购-采购申请-定义凭证层的屏幕格式
  9. 简单的dp(dp专题)
  10. 生物信息数据格式:fastq格式
  11. matlab中采样点是什么意思,各种采样含义
  12. threejs 加载obj模型
  13. 苹果 / Apple iCloud 教育版 200GB 云盘账号自助注册教程
  14. 阿里云ECS云盘挂载
  15. JPG图像太大怎么免费压缩
  16. win10之缺少一个或者多个协议(只能上qq不能上网)
  17. 做了两年前端开发,平时就是拿 Vue 写写页面和组件,简历的项目经历应该怎么写得好看?
  18. python手机版下载-手机python下载
  19. mysql 主键约束起名_MySQL名称的主键约束
  20. 你炒的肉丝为何又柴又老又难吃?

热门文章

  1. 九度oj 题目1537:买卖股票
  2. 0801 am使用tp框架对数据库增删改查
  3. Codeforces Beta Round #7 C. Line (扩展欧几里德)
  4. jquery ajax异步调用
  5. C# TextBox改变高度的方法(转载)
  6. linux 下 读取某个文件的某一行或者某几行
  7. 随机发送n位数字+字母的验证码
  8. Ajax设置自定义请求头的两种方法
  9. JavaScrpt简单介绍
  10. PHP可以重新定义已经存在的函数的类库patchwork