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[].
不要在float[] myFloats = new float[cursor.getCount()-1];中减去1,因为(int i =0)或者i从0开始。如果你使用它,将出现Java.lang.IndexOutOfBoundsException。您需要数组索引直到[cursor.getCount()],而不是直到[cursor.getCount()-1]。所以正确的是float[] myFloats = new float[cursor.getCount()];
2条答案
按热度按时间qvsjd97n1#
当你查询数据库时,你仍然有一个游标,但是一旦你得到了游标,你就可以迭代它,把你需要的值拉到一个数组中,就像这样:
omjgkv6w2#
不要在
float[] myFloats = new float[cursor.getCount()-1];
中减去1,因为(int i =0)或者i从0开始。如果你使用它,将出现Java.lang.IndexOutOfBoundsException
。您需要数组索引直到[cursor.getCount()]
,而不是直到[cursor.getCount()-1]
。所以正确的是float[] myFloats = new float[cursor.getCount()];