2012-08-15 56 views
0

我需要從數組中以SQLite數據庫(存儲它的位置)導入名稱列表。這是做如何將所有列中的特定數據導入到單個數組中

代碼數據庫

public String queryAll() { 
    // TODO Auto-generated method stub 
    String [] columns = new String [] {KEY_NAME}; 
    Cursor point = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    String result = ""; 

    int iName = point.getColumnIndex(KEY_NAME); 

    for(point.moveToFirst();!point.isAfterLast();point.moveToNext()){ 
     result = result + point.getString(iName); 
    } 
    return result; 

碼的地方,我應該將數據導入到

DBContact info = new DBContact (this); 
    info.open(); 
    String data[] = info.queryAll(); 
    info.close(); 
    NewContact = (Button) findViewById(R.id.bAddContact); 

我是一個初學者正確的方式,什麼都將有很大的幫助。

謝謝

回答

1
public String[] queryAll() { 
    String [] columns = new String [] {KEY_NAME}; 
    Cursor cursor = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    if (cursor != null) { 
     try { 
      final int nameColumnIndex = cursor.getColumnIndex(KEY_NAME); 
      List<String> names = new ArrayList<String>(); 
      while (cursor.moveToNext()) { 
       names.add(cursor.getString(nameColumnIndex)); 
      } 
      return names.toArray(new String[names.size()]); 
     } finally { 
      cursor.close(); 
     } 
    } 
    return null; 
} 
+0

我一直在努力的代碼。原來我的應用程序崩潰了,因爲上面的代碼最初沒有數據,因此什麼也沒有返回。我如何防止它? – 2012-09-24 02:15:24

+0

你必須檢查'queryAll()'方法的返回值,比如'String [] result = queryAll(); if(result!= null){...}'。 – biegleux 2012-09-24 06:41:39

+0

再次感謝您。另外我有問題如何按升序排列。如何解決這個問題.Iam new to android programming so plz dont mind while回答我愚蠢的問題 – 2012-09-24 15:21:12

相關問題