Android如何使用数据库中的行填充列表

时间:2014-08-26 21:26:09

标签: android sqlite android-listview

我试图用数据库的行填充列表,第一列是每个列表项的标题,然后是每个列表项的其他行子文本,到目前为止我的尝试都没有用。

ListView browser = (ListView)findViewById(R.id.BrowsePO);
        SQLiteDatabase db=openOrCreateDatabase("POTable.db",MODE_PRIVATE, null);
        Cursor c =db.rawQuery("SELECT * FROM POTable" ,null);
        c.moveToFirst();
        List<String> POnumbers= new ArrayList<String>();
        int totalPO = c.getCount();
        while(totalPO!=0)
        {
          String _PO = c.getString(c.getColumnIndex("POnumber"));
            String _Lat = c.getString(c.getColumnIndex("Latitude"));
            String _Long = c.getString(c.getColumnIndex("Longitude"));
            POnumbers.add(new String( " " + _PO + " " + _Lat + " " + _Long));
            c.moveToNext();
            totalPO = totalPO -1;
        }
        c.close();
        ArrayAdapter array = new ArrayAdapter(this, POnumbers);

1 个答案:

答案 0 :(得分:2)

您需要使用CursorAdapter而不是数组适配器。

您应该在后台线程上查询您的数据库 - 例如在AsyncTaskCursorLoader中。然后从查询中返回一个Cursor,并将其传递给CursorAdapter。适配器处理将光标移动到下一个/上一个位置,您只需将光标中的数据绑定到视图。

This可能会有所帮助。