将所有数据从SQLite数据库返回到Android中的两列

时间:2013-09-30 16:22:34

标签: android sqlite

我正在尝试将我的两列DB中的所有数据都返回到两个不同的TextViews。在一次尝试中,我可以返回所有数据,但它只在一个TextView中,在第二次尝试中,我可以将它放入两个TextViews,但它只返回数据库中的第一行。首先尝试:

    //--- Returns only first result

//--- DB Method
public String[] getPres2() {
    String[] columns = new String[] { KEY_PRES, KEY_YEAR};
    Cursor cursor = db.query(DB_TABLE, columns, null, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
        String pstYr[] = new String[2];
        pstYr[0] = cursor.getString(0);
        pstYr[1] = cursor.getString(1);
        cursor.close();
        this.db.close();
        return pstYr;
    }
    return null;

}

//--- in the activity
public void DBMethod2() {
    dba = new DBAdapter(this);
    dba.open();
    String[] pst_Str = dba.getPres2();
    dba.close();
    pst_TV.setText(pst_Str[0]);
    yrs_TV.setText(pst_Str[1]);

}

第二次尝试:

    //--- Returns all results, but only in a single TextView
//--- DB Method
public String getPres3() {
    String[] columns = new String[] { KEY_PRES, KEY_YEAR};
    Cursor cursor = db.query(DB_TABLE, columns, null, null, null, null, null);
    String result = "";

    int iPrs = cursor.getColumnIndex(KEY_PRES);
    int iYr = cursor.getColumnIndex(KEY_YEAR);

    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()){
        result = result + cursor.getString(iPrs) + "\n" + cursor.getString(iYr) +   "\n" + "\n";
    }

    return result;

}


//--- In Activity
public void DBMethod3() {
    dba = new DBAdapter(this);
    dba.open();
    String pstY_Str = dba.getPres3();
    dba.close();
    pst_TV.setText(pstY_Str);

}

任何帮助?

2 个答案:

答案 0 :(得分:0)

如果循环遍历游标中的所有行,则第一次尝试将起作用。

Here is an example from this link

 String arr[]=new String[4];
 i=0;

 cur.moveToFirst();
 while (cur.isAfterLast() == false) 
 {
     arr[i]  = cur.getString(0);
     i++;
     cur.moveToNext();
 }

答案 1 :(得分:0)

你必须遍历游标,一次一行,然后像这样使用GetString语法:

String mId = cursor.getString(cursor.getColumnIndex(COLUMN_ID));

其中COLUMN_ID是sqlite数据库中列的名称