【问题标题】:Android how to populate list with rows from databaseAndroid如何用数据库中的行填充列表
【发布时间】:2014-08-26 21:26:09
【问题描述】:

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

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

【问题讨论】:

    标签: android sqlite android-listview


    【解决方案1】:

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

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

    This 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-02-03
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多