2011-01-30 154 views
3

很确定这很简单,但是我将所有将光标返回的数据修改为不同视图的示例让我感到困惑。 我只是想运行一个rawquery,并把每个数据项返回到一个浮点数组(以便我可以稍后添加它们)。我需要为此使用什么? 谢谢如何将数据从SQLITE数据库中获取到android中的数组?

+1

你忘了初始化budgetInArray(大概你想这样做后,“numRows = incomeCursor.getCount()”行)? – 2011-01-30 15:28:31

+0

是的,这正是问题,刚到那里我自己-_-感谢您指出:) – Holly 2011-01-30 15:32:32

回答

9

你仍然有一个光标,当你查询你的数据库,但一旦你得到了光标,你可以遍历它,拿出你需要到一个数组的值,如:

DbAdapter db = new DbAdapter(mContext); 
    int columnIndex = 3; // Whichever column your float is in. 
    db.open(); 
    Cursor cursor = db.getAllMyFloats(); 
    float[] myFloats = new float[cursor.getCount()-1]; 

    if (cursor.moveToFirst()) 
    {      
     for (int i = 0; i < cursor.getCount(); i++) 
     { 
      myFloats[i] = cursor.getFloat(columnIndex); 
      cursor.moveToNext(); 
     }   
    } 
    cursor.close(); 
    db.close(); 

    // Do what you want with myFloats[]. 
3

因为(int i = 0)或者我从0开始,所以不要在float[] myFloats = new float[cursor.getCount()-1];中减1。如果使用它,将出现Java.lang.IndexOutOfBoundsException。您需要数组索引,直到[cursor.getCount()],直到[cursor.getCount()-1]。所以正确的事情是float[] myFloats = new float[cursor.getCount()];

相关问题