2012-08-15 21 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

相关问题