实现类似Android联系人搜索功能
来源:互联网 发布:流量提醒软件下载 编辑:程序博客网 时间:2024/04/30 05:09
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"> <EditText android:id="@+id/search_et" android:hint="@string/search_et_hint" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ListView android: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"; @Override protected 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() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public 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()); } @Override public void afterTextChanged(Editable s) { } }); listViewAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItemValues); //注册Adapter content_lv.setAdapter(listViewAdapter); //handler myHandler = new android.os.Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case MSG_SINGAL: //todo refreshListView(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(); }}
0 0
- 实现类似Android联系人搜索功能
- Android通讯录开发之通讯录联系人搜索功能最新实现
- Android通讯录开发之通讯录联系人搜索功能最新实现
- ionic2实现通讯录,联系人搜索功能
- js/jQuery实现类似百度搜索功能
- js/jQuery实现类似百度搜索功能
- Android通讯录开发之通讯录联系人搜索功能最新实现5
- Android 仿联系人列表 实现ListView的A-Z字母排序和过滤搜索功能
- Android 使用RecyclerView实现(仿微信)的联系人A-Z字母排序和过滤搜索功能
- Android 实现类似摇一摇功能
- Android搜索功能实现
- Android实现类似微信联系人中的分组列表
- Android 仿联系人列表 实现ListView的A-Z字母排序和过滤搜索功能,并挤压效果(一)
- Android 仿联系人列表 实现ListView的A-Z字母排序和过滤搜索功能,并挤压效果
- Android联系人列表,实现ListView的A-Z字母排序和过滤搜索功能,字母条目上顶
- Android 类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
- Android项目类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
- android联系人搜索
- iOS在地图上画图和导航
- eclipse trufun plato UML插件的下载
- 关于集群监控
- 详解JavaScript下的事件委托和this
- mongodb时间戳转换成格式化时间戳
- 实现类似Android联系人搜索功能
- tcp服务器和防火墙是如何识别已连接套接字的???
- 200多个js技巧代码
- 创建主键 创建外键 创建约束
- MySQL学习系列3:数据类型
- Array的一些方法总结
- git-commit
- Android如何用命令行进行打包
- 程序员篇:8个开发技巧助你薪水更上一层楼