【android】一个小问题让我纠结了很久

之前处理cursor的方法: 此方法是有问题的!!!
public List<Map<String, Object>> getData() {
		List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
		while (getCursor().moveToNext()) {
			Map<String, Object> map = new HashMap<String, Object>();
			 System.out.println("ID: "+getCursor().getString(0));
			map.put("_id", getCursor().getString(0));
			 System.out.println("NAME: "+getCursor().getString(1));
			map.put("Number", getCursor().getString(1));
			list.add(map);
		}


正确处理cursor的方法:
for(getCursor().moveToFirst();!getCursor().isAfterLast();getCursor().moveToNext())
		{
			Map<String, Object> map = new HashMap<String, Object>();
		    int _id = getCursor().getColumnIndex("_id");
		    int _number = getCursor().getColumnIndex("phonenr");
		    map.put("_id", getCursor().getString(_id));
		    map.put("Number", getCursor().getString(_number));
		    
		    System.out.println(getCursor().getString(_id));
		    System.out.println(getCursor().getString(_number));
		    list.add(map);
		}

你可能感兴趣的:(Cursor)