如何从数据库中放入一些数组?

时间:2011-05-30 15:38:41

标签: android database arrays

在我的应用程序中,我想从数据库中放入一些数组。我可以看到它们,作为使用此函数的列表:

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);
}

但我不知道如何将它们放入数组中。

有人可以帮助我吗?

2 个答案:

答案 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";
}