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; }