如何将游标对象的数据存储在数组中

时间:2011-06-10 09:54:39

标签: android database arrays cursor

我想问一下如何存储从数组中的游标对象检索的数据。我无法做到并获得空指针异常,因为我无法初始化数组的大小?我在哪里编写该代码并将从游标对象中检索到的所有数据存储在一个数组中。请我无法做到。

我从光标检索数据的代码如下。

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 个答案:

答案 0 :(得分:2)

问题是,您有两个要存储的值。所以普通数组不能解决问题。您可以使用自定义类的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());
    } 
}

答案 1 :(得分:0)

而不是Array。使用ArrayList或ArrayList&gt;这是可变的。在后者中,初始化arraylist然后是HashMap并使用put(key,value)方法填充它,最后将HashMap添加到ArrayList

答案 2 :(得分:0)

再次......

我假设你需要ArrayAdapter的这个数组

用于光标使用(SimpleCursorAdapter