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. 运行截图:略