Конвертировать строку в массив (Android)

1

Я получаю данные String из Cursor, но я не знаю, как преобразовать его в Array. Как я могу это сделать?

String[] mString;
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) {
   mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW));
}
mString = mTitleRaw ????
Теги:
cursor

2 ответа

4
Лучший ответ

Вы можете просто перенести mTitleRaw в один массив элементов, например:

mString = new String[] { mTitleRaw };

Обновление: Вероятно, вам нужно добавить все строки в один массив, который вы можете сделать с помощью ArrayList, и перенести обратно в массив String [] следующим образом:

ArrayList strings = new ArrayList();
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
   String mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW));
   strings.add(mTitleRaw);
}
Sting[] mString = (String[]) strings.toArray(new String[strings.size()]);
  • 1
    Вы уверены, что это хорошо? Ваш первый элемент пропущен, не должно быть: for (c.moveToFirst ();! C.isAfterLast (); c.moveToNext ())
1

Как отметил Pentium10, в коде marshall_law есть ошибка. Он пропускает первый элемент в курсоре. Вот лучшее решение:

    ArrayList al = new ArrayList();
    cursor.moveToFirst();
    while(!cursor.isAfterLast()) {
        Log.d("", "" + cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_PROFILE_NAME)));
        String mTitleRaw = cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_ID));
        al.add(mTitleRaw);
        cursor.moveToNext();
    }

Как я уже сказал, этот код будет содержать первый элемент в курсоре.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню