快熟查找联系人
[功能]
比如:想查找 shijintao 的记录 只需输入"shi" 所以以"sh"开头的记录就都出来了 我先输入了一些联系人 如下:

[思路]
1. EditText + TextWatch 用于跟踪用户输入
2. ListView + BaseAdapter + notifyDataSetChanged() 用于数据显示和刷新
[代码 步骤]
1. 定义数据结构 用于存放符合条件的联系人
写道
数据结构 选择:
* String[]
- 不行 因为数据不是静态 会不断变化
* List<Map<String,String>>
- 可以 List<>是动态的 支持实时改动
- Map<String,String> 用Key-Value 的原因:支持扩展 也可以不仅显示名字 还可以显示联系人号码 及 其他信息
//1. 定义
List<Map<String,String>>
//2. 初始化
match = new ArrayList<Map<String,String>>();
2. 定义 TextWatcher 用于跟踪输入变化
private TextWatcher watcher = new TextWatcher(){
@Override
public void afterTextChanged(Editable s) { }
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) { }
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
updateContacts(s.toString());
}
};
3. 定义方法 updateContacts 用于得到符合条件的列表 并 刷新显示
Cursor c = getContentResolver().query(People.CONTENT_URI,
null, null, null, null);
public List<Map<String,String>> queryContactsByCursor(Cursor c,String column,String filter){
List<Map<String,String>> result = new ArrayList<Map<String,String>>();
int i = c.getColumnIndex(column);
for(c.moveToFirst(); ! c.isAfterLast(); c.moveToNext()){
column = c.getString(i);
if(column.startsWith(filter)){
Map<String,String> string = new HashMap<String,String>();
string.put(COLUMN_1, column);
result.add(string);
}
}
return result;
}
4. ListView 第一次显示所有联系人名单
match = queryContactsByCursor(c,"name","");
5. 定义 ContactsMatchListAdapter 并绑定数据 List<Map<String,String>> match
public class ContactsMatchListAdapter extends BaseAdapter {
Activity activity;
public ContactsMatchListAdapter(Activity a){
activity = a;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return match.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return match.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
TextView tv = new TextView(activity);
tv.setText(match.get(position).get(COLUMN_1));
tv.setHeight(30);
tv.setGravity(Gravity.CENTER);
return tv;
}
}
5. emulator 运行截图:
* 开始显示所有列表 即 无输入 的显示:

* 当输入字符"sh" ListView 显示的变化

done!
分享到:
相关推荐
【标题】"Weixinlinkman" 是一个仿微信联系人的应用功能模块,旨在提供与微信类似的联系人查找体验。在微信应用中,联系人通常按照字母顺序排列,并且用户可以通过点击右侧的字母栏快速跳转到指定字母开头的联系人...
可拖动的滑动条可以提升用户体验,使得用户在查找联系人时可以更加直观、快捷地滑动列表,从而快速定位到想要联系的人。 为了实现这样的功能,开发者通常会采用一些成熟的设计模式,比如MVP(Model-View-Presenter...
本通讯录管理系统具有很多的优点,如用户可以随时随地对通讯录进行管理,添加、删除、修改联系人的信息,查找联系人信息等等。用户也可以根据需要对通讯录进行分类、分组等操作,方便用户更好地管理通讯录。
4. **用户间交友**:实现查找其他用户、发起好友申请以及分享联系人信息的功能,增强用户间的互动性。 在实现这些功能的过程中,项目组成员分工合作,其中一部分人负责开发联系人管理模块。具体实现方法如下: - *...
如果你想要查看所有联系人,即使其中有些好友当前并不在线,你只需重复点击该箭头图标,再次弹出下拉菜单,并选择“显示全部联系人”。选择这一选项后,原来的联系人列表就会恢复,展示所有的好友,无论他们当前是否...
【通讯录管理系统】是一种专为用户管理和存储联系人信息的实用工具,尤其在人际交往频繁的现代社会中,它极大地简化了查找和管理联系方式的过程。随着计算机技术的发展,人们逐渐依赖电子设备来代替传统的记事本和...
通过精心设计的算法,实现了快速添加、删除和查找联系人功能。 2. 用户界面:为了方便用户操作,程序可能采用了命令行界面或者图形用户界面(GUI)。命令行界面通常通过键盘输入指令,而GUI则通过鼠标点击进行交互...
节点离开时,它们的联系人需要更新自己的路由表,避免死链。 7. **稳定性**:KAD网络的稳定性依赖于定期的节点刷新和心跳机制,确保路由表的节点活跃且准确。 源码中的`example`部分,可能是提供了一个简单的DHT-...
若要查找某个特定的联系人,软件支持通过姓名、电话号码等多种搜索条件进行快速检索。此外,软件还可以根据用户的需要进行排序、筛选等高级操作,进一步提高了电话簿的使用效率。 另外,对于开发过程中使用的文件...
用户可以快速查找、添加或编辑联系人,甚至可能支持同步到其他设备或服务,实现跨平台的联系人管理。 3. **安全与隐私保护**:作为一个现代浏览器,糖果浏览器3.370047必然包含了多种安全措施,如防止恶意软件、...
通讯录信息管理系统是一种创新的计算机应用技术,它将传统的手动联系人管理方式(如名片和手写记录)转变为高效、便捷的电子化管理。这种系统是管理信息系统(MIS)的一个实例,旨在通过计算机技术提升通讯录管理的...
这类应用能够存储姓名、电话号码、电子邮件地址、公司信息等多种联系人数据,并提供搜索、分类、排序等功能,以便用户高效地查找和管理联系人。 在CSCI 153这门课程中,"联系组织者"可能是作为编程项目的一部分,让...
硬件接口:由于软件本身较小,除了硬盘以外,基本没有与其他外设联系,不过考虑到可能对存储大量数据的数据库进行备份,可以实现保持与光驱刻录机的接口。 软件接口:这里主要考虑的是软件与操作系统的接口。由于...
本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如...
其次,失物发布功能,用户可以上传失物的详细信息,包括物品类型、丢失时间、地点和联系方式等,方便丢失者和拾得者快速联系;再次,查找功能,用户可以根据不同的分类浏览或搜索失物招领信息;此外,评论和反馈功能...
随着计算机技术及通信技术的普及,人们有越来越多的机会,访问internet,并从Internet中获取资源,Internet紧密的与人们的生活联系起来。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻...
2. **联系人管理**:用户可以添加、删除和分组联系人,便于管理和查找聊天对象。 3. **即时消息传递**:软件的核心功能,允许用户发送文本消息、表情、图片、文件等多种类型的信息,并实时接收对方的回复。 4. **...
该系统不仅提供了基础的通讯录功能,还融入了多种实用特性,使员工可以轻松地获取和使用企业内部联系人的信息。 在核心功能方面,用户管理是其重要组成部分。系统允许管理员轻松添加用户,这包括录入员工的基本信息...
- **联系人管理模块**:存储和查找联系人,显示在线状态,管理好友列表。 - **文件传输模块**:支持文件发送和接收,可能涉及断点续传和文件大小限制。 - **安全性模块**:数据加密、防止骚扰和欺诈,确保通信...
2. **农作物熟制的分布规律**:在中国,农作物熟制的分布主要受热量条件的影响,由南至北大致为一年三熟、一年二熟、一年一熟。这反映了热量对农作物生长周期的制约,热量充足的地方作物生长速度快,一年内可收获...