2011-05-30 22 views
0

在我的应用程序中,我想从数据库中放入一些项目。我可以看到他们,作为使用此功能的列表:如何在数组中放入一些项目?

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

你想要与阵列什么?数据库列的类型是什么? – Flo 2011-05-30 15:44:27

+0

你想要什么样的阵列?你想将行转换成对象,并有一个MyObject []数组?或者你想要一个多维的字符串数组?或者是其他东西? – kodi 2011-05-30 15:47:48

+0

我想把这个数组放在EditText中。这将是我想发送的信息,我想看起来像这样:“洋葱1公斤,梨2公斤,......”。这是关于我想发送的购物清单。数据库列是String。 – Gaby 2011-05-30 15:49:11

回答

0

你肯定会通过光标迭代开始:

while(c.moveToNext()){ 
    myString = c.getString(c.getColumnIndex("MyColumnName")); // or somesuch 
    array[x][y][z] = myString; // also somesuch 
} 

不知道更多关于你要如何存储数据,这是不可能猜你需要超越c.moveToNext()什么。

UPDATE:

OK,所以你只想将它们聚集成一个字符串。尝试是这样的:

String theList=""; 
while(c.moveToNext()){ 
    theList += c.getString(0) + " " + c.getString(1) + c.getString(2) + "\n"; 
} 
+0

谢谢。我试过这样的东西,它的工作原理。 – Gaby 2011-05-30 17:12:25

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方法,产生了一些选择参数,可以以执行适当的查询。 我还没有测试过代码,可能会有一些错字或小错误,但我希望它能指引您找到所需的解决方案。

+0

感谢您的回答。我尝试了像previuos的答案,它的工作原理,但我认为这种方法也可以。 – Gaby 2011-05-30 17:14:12

相关问题