在我的应用程序中,我想从数据库中放入一些数组。我可以看到它们,作为使用此函数的列表:
private void fillData()
{
c = db.fetchListId(listid);
startManagingCursor(c);
adapter = new SimpleCursorAdapter(this, R.layout.listproduct, c,
new String[] { DbAdapter.KEY_ITEM,
DbAdapter.KEY_QUANTITY,
DbAdapter.KEY_UNITS },
new int[] { R.id.prod1,
R.id.prod2,
R.id.prod3 }
);
setListAdapter(adapter);
}
但我不知道如何将它们放入数组中。
有人可以帮助我吗?
答案 0 :(得分:1)
我想你想做这样的事情:
private String[] getItems(<the selection params>) {
Cursor c = db.retrieveItems(<the selection params>);
String[] items = new String[c.getCount()];
for (int i = 0; c.moveToNext() != null; i++) {
String item = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_ITEM));
String quantity = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_QUANTITY));
String units = c.getString(c.getColumnIndexOrThrow(DbAdapter.KEY_UNITS));
items[i] = item + " " + quantity + units;
}
c.close();
return items;
}
我假设您的数据库类有一个名为 retrieveItems 的方法,它采用一些选择参数,以便执行适当的查询。 我没有测试过代码,可能会有一些拼写错误或轻微的错误,但我希望它可以引导您找到理想的解决方案。
答案 1 :(得分:0)
你肯定会通过迭代光标开始:
while(c.moveToNext()){
myString = c.getString(c.getColumnIndex("MyColumnName")); // or somesuch
array[x][y][z] = myString; // also somesuch
}
在不了解您希望如何存储数据的情况下,除了c.moveToNext()
之外,我们无法猜测您需要什么。
更新:
好的,所以你只想把它们累积成一个String。尝试类似:
String theList="";
while(c.moveToNext()){
theList += c.getString(0) + " " + c.getString(1) + c.getString(2) + "\n";
}