2011-06-10 75 views
1

我想問如何將從遊標對象檢索到的數據存儲在數組中。我無法做到這一點,並獲得空指針異常,因爲我無法初始化數組的大小?我在哪裏編寫代碼並將從遊標對象檢索到的所有數據存儲在數組中。請我無法做到這一點。如何將光標對象的數據存儲在數組中

我的代碼從光標檢索數據如下。

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()); 
    } 
}   
+0

我曾試圖改善你的問題的文本,因爲它是很難理解。請不要使用縮寫並創建簡單的句子。 – WarrenFaith 2011-06-10 10:02:43

回答

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()); 
    } 
} 
0

而不是陣列。使用可變的ArrayList或ArrayList>。在後者中,初始化ArrayList中那麼HashMap和與認沽(鍵,值)方法填充它,最後HashMap中添加到ArrayList

+0

是沒有任何其他的方式來做到這一點..我不能存儲數組中的值? – 2011-06-10 10:01:50

+0

ArrayList是可變的,數組不是。另外,你想爲每個索引存儲多個值,因此我會建議包含HashMap或Pair模型的ArrayList。 – nahwarang 2011-06-10 10:32:12

+0

這也可以使用baseadapter? – 2011-06-10 10:56:58

相關問題