Cursor cursor = db.query("txt", new String[] { "b", "c",
"d" }, null, null, null, null, null);

while (cursor.moveToNext()) {
String b = cursor.getString(cursor.getColumnIndex("b"));
 String c = cursor.getString(cursor.getColumnIndex("c"));
 String d = cursor.getString(cursor.getColumnIndex("d"));
我用这个方法读出表中的 b,c,d字段下的内容,但是我不想要重复的结果,cursor里面有解决方法吗?如果用sql语句的方式查询,用distinct方法"select distinct from txt",那这样怎么去toString()获得b,c,d字段的值并打印出来,就是要显示在textview的意思

解决方案 »

  1.   

    public List selectForList(String sql,String args[]){
    DatabaseHelper dbHelper = new DatabaseHelper(context);
    SQLiteDatabase db = dbHelper.getReadableDatabase();
    Cursor cur = db.rawQuery(sql, args);
    List list =new ArrayList();
    int columnCount = cur.getColumnCount();
    while(cur.moveToNext()){
    Map map =new HashMap();
    for(int i=0;i<columnCount;i++){
    map.put(cur.getColumnName(i), cur.getString(i));
    }
    list.add(map);
    }
    if(cur!=null){
    cur.moveToFirst();
    }
    cur.close();
    db.close();
    dbHelper.close();
    return list;
    }
    返回一个list,你只有一条的话list.get(0),然后
    ((Map)list.get(0)).get("列名称").toString()