10

Вопрос по sql, android, database – android cursor.moveToNext ()?

Я пытаюсь запросить все столбцы в таблице в одно длинное текстовое представление и / или строку. Я знаю, что это может быть неправильный способ делать вещи, но я должен сделать это. Поправьте меня, если я ошибаюсь, у меня сложилось впечатление, что следующий шаг получит следующий столбец в строке:

Cursor c = db.get();
if(c.moveToFirst){
do{
string = c.getString(0);
}while(c.moveToNext);

Я думал, что это получит первый столбец и отобразит все его содержимое, вместо этого я получу первый столбец и первый ряд. Что я делаю неправильно? Есть ли лучший или реальный способ получить эту информацию без использования ListView?

5ответов

32

Error: User Rate Limit Exceeded

Cursor cursor = db.query(...);
while (cursor.moveToNext()) {
    ...
}

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

Error: User Rate Limit Exceeded

12

Error: User Rate Limit Exceeded

    Cursor cursor = getActivity().getContentResolver().query(uri, projection, null, null,
            null);

    //if the cursor isnt null we will essentially iterate over rows and then columns
    //to form a table of data as per database.
    if (cursor != null) {

        //more to the first row
        cursor.moveToFirst();

        //iterate over rows
        for (int i = 0; i < cursor.getCount(); i++) {

            //iterate over the columns
            for(int j = 0; j < cursor.getColumnNames().length; j++){ 

                //append the column value to the string builder and delimit by a pipe symbol
                stringBuilder.append(cursor.getString(j) + "|"); 
            }
            //add a new line carriage return
            stringBuilder.append("\n");

            //move to the next row
            cursor.moveToNext();
        }
        //close the cursor
        cursor.close();
    }
1

Error: User Rate Limit Exceeded

int index = c.getColumnIndex("Column_Name");
string = c.getString(index);
1

Error: User Rate Limit Exceeded

    cursor.moveToFirst();
    while(!cursor.isAfterLast()) {

            cursor.getString(cursor.getColumnIndex("column_name"));

        cursor.moveToNext();
    }

Error: User Rate Limit Exceeded

cursor.moveToFirst();    
    for(int i = 0; i < cursor.getColumnNames().length; i++){
        cursor.getString(i);
    }

Error: User Rate Limit Exceeded

0

cursor.moveToFirst()Error: User Rate Limit Exceeded

c.moveToFirst();
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i < 6; i++){
   stringBuilder.append(c.getString(i));
}

// to return the string, you would do stringBuilder.toString();

RelatedQuestions