Как получить значение базы данных в массив строк в Android (база данных sqlite) - PullRequest
7 голосов
/ 25 января 2012

У меня есть имя базы данных "CUED" (sqlite Android), у нее есть таблица HELLO , которая содержит столбец NAME Я могу получить значение String из этого столбца. Позвольте мне показать вам мой раздел кода

    myDB =hello.this.openOrCreateDatabase("CUED", MODE_PRIVATE, null); 
            Cursor crs = myDB.rawQuery("SELECT * FROM HELLO", null);


            while(crs.moveToNext())
            {
                String uname = crs.getString(crs.getColumnIndex("NAME"));
                System.out.println(uname);
 }

Он будет выводить значение по одному. Теперь мне нужно получить значения столбцов из базы данных и сохранить их в массиве строк.

Ответы [ 3 ]

26 голосов
/ 25 января 2012

Вы уже выполнили сложную часть ... с массивами все довольно просто:

String[] array = new String[crs.getCount()];
int i = 0;
while(crs.moveToNext()){
    String uname = crs.getString(crs.getColumnIndex("NAME"));
    array[i] = uname;
    i++;
}

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

List<String> array = new ArrayList<String>();
while(crs.moveToNext()){
    String uname = crs.getString(crs.getColumnIndex("NAME"));
    array.add(uname);
}

Чтобы сравнить массивы, вы можете сделать что-то вроде этого:

boolean same = true;
for(int i = 0; i < array.length; i++){
    if(!array[i].equals(ha[i])){
        same = false;
        break;
    }
}
// same will be false if the arrays do not have the same elements
0 голосов
/ 20 апреля 2013

Это мой код, который возвращает arraylist содержит значение поля:

public ArrayList<String> getAllPlayers() {

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cur = db.rawQuery("SELECT " + serailnumber + " as _id, " + title
            + " from " + table, new String[] {});
    ArrayList<String> array = new ArrayList<String>();
    while (cur.moveToNext()) {
        String uname = cur.getString(cur.getColumnIndex(title));
        array.add(uname);

    }
    return array;
}
0 голосов
/ 25 января 2012
       String[] str= new String[crs.getCount()];
       crs.movetoFirst();           
     for(int i=0;i<str.length();i++)
        { 
           str[i] = crs.getString(crs.getColumnIndex("NAME"));
            System.out.println(uname);
      crs.movetoNext();
        }

Наслаждайся

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...