public List<Map<String,Object>> cursorToList(Cursor cursor){
List<Map<String,Object>> maps=new ArrayList<Map<String,Object>>();
//返回游标中字段组成的集合
String[] colunmNames= cursor.getColumnNames();
System.out.println("columnNames="+ Arrays.toString(colunmNames));
//while循环转一圈,得到游标中一行的数据,如果游标中数据取完了则while退出
while (cursor.moveToNext()){
Map<String,Object> map=new HashMap<String,Object>();
//得到游标中每一列中的数据
int len=colunmNames.length;//返回数组的大小
for(int i=0;i<len;i++){
//返回指定列的数据类型对应的整数值
int dataType= cursor.getType(i);
Object value=null;
switch (dataType){
//说明当前列是String数据类型
case Cursor.FIELD_TYPE_STRING:
value=cursor.getString(i);
break;
//说明当前列是Integer数据类型
case Cursor.FIELD_TYPE_INTEGER:
value=cursor.getInt(i);
break;
case Cursor.FIELD_TYPE_FLOAT:
value=cursor.getFloat(i);
break;
case Cursor.FIELD_TYPE_BLOB:
value=cursor.getBlob(i);
break;
case Cursor.FIELD_TYPE_NULL:
value=null;
break;
}
//返回当前列的列名
String key=colunmNames[i];
map.put(key,value);
}
maps.add(map);
}
return maps;
}