Cursor 操作

本文介绍了一种使用ContentResolver查询Android系统中名字以特定字母开头的联系人的方法,并提供了具体的代码实现步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cursor

 

 

以 应用 为例  比如:查询系统联系人中名字以 "e" 开头的名单

 

1. 通过ContentResolver得到所有联系人记录

Cursor cursor = getContentResolver().query(People.CONTENT_URI, 
                null, null, null, null);

 

 

2. 查询所有名字以"e"开头的记录

List<Map<String,String>> value = queryColumnByFilter(cursor,"name", "e");

 

 

3. 查询函数原型:

public List<Map<String,String>> queryColumnByFilter(Cursor c,String column,String filter){
    	List<Map<String,String>> result = new ArrayList<Map<String,String>>();
    	int index = c.getColumnIndex(column);
    	for(c.moveToFirst(); ! c.isAfterLast(); c.moveToNext()){
    		column = c.getString(index);
    		
    		//set the filter
    		// startsWith: whether the "column" string will start with the "filter" string
    		// contain: whether the "column" string contain the "filter" string
    		if(column.startsWith(filter)){
    		//if(column.contain(filter)){
    		Map<String,String> string = new HashMap<String,String>();
    		string.put(COLUMN_1, column);
    		
    		result.add(string);
    		}
    	}
    	
    	return result;
    }

 

 

4. 显示结果

String[] from = {COLUMN_1};
        int[] to = {android.R.id.text1};
        SimpleAdapter adapter = new SimpleAdapter(this,value,android.R.layout.simple_list_item_1,from,to);
        
        this.setListAdapter(adapter);

 

 

5. 运行截图:略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值