как положить в массив некоторые элементы из базы данных? - PullRequest
0 голосов
/ 30 мая 2011

В моем приложении я хочу поместить в массив некоторые элементы из базы данных. Я могу видеть их, как список, используя эту функцию:

private void fillData() 
{
    c = db.fetchListId(listid);
    startManagingCursor(c);

    adapter = new SimpleCursorAdapter(this, R.layout.listproduct, c,
                                      new String[] { DbAdapter.KEY_ITEM,
                                                     DbAdapter.KEY_QUANTITY,
                                                     DbAdapter.KEY_UNITS }, 
                                      new int[] { R.id.prod1,
                                                  R.id.prod2, 
                                                  R.id.prod3 }
                                     );

    setListAdapter(adapter);
}

Но я не знаю, как я могу поместить их в массив.

Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Полагаю, вы хотели бы сделать что-то вроде этого:

private String[] getItems(<the selection params>) {
    Cursor c = db.retrieveItems(<the selection params>);
    String[] items = new String[c.getCount()];
    for (int i = 0; c.moveToNext() != null; i++) {
        String item = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_ITEM));
        String quantity = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_QUANTITY));
        String units = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_UNITS));
        items[i] = item + " " + quantity + units;
    }
    c.close();
    return items;
}

Я предположил, что в вашем классе БД есть метод с именем retrieveItems , который принимает некоторые параметры выбора в порядкевыполнить соответствующий запрос.Я не тестировал код, возможно, произошла опечатка или небольшая ошибка, но я надеюсь, что она может привести вас к желаемому решению.

0 голосов
/ 30 мая 2011

Вы определенно начнете с перебора курсора:

while(c.moveToNext()){
  myString = c.getString(c.getColumnIndex("MyColumnName")); // or somesuch
  array[x][y][z] = myString; // also somesuch
}

Не зная больше о том, как вы хотите хранить данные, невозможно угадать, что вам нужно, кроме c.moveToNext().

ОБНОВЛЕНИЕ:

ОК, так что вы просто хотите накапливать их в строку.Попробуйте что-то вроде:

String theList="";
while(c.moveToNext()){
  theList += c.getString(0) + " " + c.getString(1) + c.getString(2) + "\n";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...