как сохранить данные объекта курсора в массиве - PullRequest
1 голос
/ 10 июня 2011

Я хочу спросить о том, как хранить данные, полученные из объекта курсора в массиве.Я не могу сделать это и получить исключение нулевого указателя, потому что я не могу инициализировать размер массива?Где я могу написать этот код и сохранить все данные, полученные из объекта курсора в массиве.Пожалуйста, я не могу этого сделать.

Мой код для получения данных из курсора указан ниже.

if (c != null ) {
    if  (c.moveToFirst()) {
        do {
            firstName = c.getString(c.getColumnIndex("FirstName"));
            int age = c.getInt(c.getColumnIndex("Age"));
            //results.add("Name: " + firstName + ",Age: " + age);
        }while (c.moveToNext());
    } 
}           

Ответы [ 3 ]

2 голосов
/ 10 июня 2011

Проблема в том, что у вас есть два значения, которые вы хотите сохранить.Таким образом, обычный массив не решит проблему.Вы можете использовать ArrayList пользовательского класса.Или вы используете класс Pair.

Попробуйте:

if (c != null ) {
    ArrayList<Pair<String, String>> list = new ArrayList<Pair<String, String>>();
    if  (c.moveToFirst()) {
        do {
            list.put(new Pair<c.getString(c.getColumnIndex("FirstName"), c.getInt(c.getColumnIndex("Age")>));
            //firstName = c.getString(c.getColumnIndex("FirstName"));
            //int age = c.getInt(c.getColumnIndex("Age"));
            //results.add("Name: " + firstName + ",Age: " + age);
        }while (c.moveToNext());
    } 
}
0 голосов
/ 10 июня 2011

и снова ...

Я предполагаю, что вам нужен этот массив для ArrayAdapter

для использования курсора ( Простой ) CursorAdapter

0 голосов
/ 10 июня 2011

вместо массива.Используйте ArrayList или ArrayList>, которые являются изменяемыми.В последнем случае инициализируйте arraylist, затем HashMap, заполните его методом put (key, value) и, наконец, добавьте HashMap в ArrayList

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