2013-01-05 36 views
1

正如我在標題中所說的,我想將遊標的值保存到字符串數組中。我將在一個ArrayAdapter中使用這個數組,並調用setLineAdapter(ArrayAdapter)..我有這些代碼,但LogCat說在arr [i] = crr.getString(i)行有問題...有人可以幫助我嗎?如何將遊標的值發送到字符串數組[]

DBAdapter db; 
String arr[]; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    db = new DBAdapter(this); 
    db.open(); 

    ArrayAdapter<String> AA = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, arr); 

    try { 
      Cursor crr = db.getRecord(4); 

      crr.moveToFirst(); 

      for (int i = 0; i <= cr.getCount(); i++){ 
      arr[i] = cr.getString(i); 
      crr.moveToNext(); 
    }} 
    catch (IOException e) {e.printStackTrace();} 

    setListAdapter(AA); 
    db.close(); 
+0

像 String arr [] = new String [cr.getCount()]; – vodich

回答

1

更改您的代碼使用做,而並使用ArrayList代替陣列從光標填充動態值:也許

ArrayList<String> arrcurval=new ArrayList<String>(); 
if (crr.moveToFirst()) { 
    do { 
     arrcurval.add(crr.getString(0)); //<< pass column index here instead of i 

    } while (crr.moveToNext()); 
} 
+1

Thanx ...一切正常現在=) –

+0

@ArdaOğulÜçpınar:最受歡迎的朋友:) –

+0

現在,我怎樣才能做一個onListItemListener,它打開一個TableView,當我點擊這些項目?我不能這樣做,如果位置是x,開始意圖**我想...因爲我不知道有多少項目會在那裏......監聽器應該打開TableView,也應該發送一個整數(索引)到TableView說哪個項目已被選擇。而TableView應該從DataBase中獲取數據並顯示它;使用Listener發送的索引?但是,我不知道我該怎麼做...(或者我錯了嗎?) –

0

您必須分配的陣列,這樣的:

 Cursor crr = db.getRecord(4); 
     int n = crr.count(); 
     arr = new int[n]; 
+0

您可能還想替換'cr.getString(i)'從適當的列中獲取字符串,'cr.getString(cr.getColumnIndex(THE_INDEX))':) – Luksprog

相關問題