光标不起作用listview

时间:2015-08-11 16:11:44

标签: android listview cursor

我有这个方法来填充listview

private void llenarLista() {
    SQLiteDatabase bd= SQLiteDatabase.openDatabase(Environment.getExternalStorageDirectory().getAbsolutePath() + "/SuperStock/SuperStock.db", null, 0);
    Cursor cursor = bd.rawQuery("select _id, cod_cliente, nom_cliente, fecha, estado_envio,estado, total_final from pedidos where estado_envio='pendiente' ORDER BY fecha DESC", null);
    if(cursor.moveToFirst()) {
        adaptador = new AdaptadorListaPedidos(ConsultarPedidos2.this, cursor);
        lista.setAdapter(adaptador);
    }
    else
        mensaje("Linea 66","cursor vacio");

    cursor.close();
    bd.close();
}

但我的光标有问题,当你运行cursor.close()时列表为空,当注释//cursor.close line()时,列表显示已填充。我在滥用光标?任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

close()使用时Cursor CursorAdapter CursorAdapter。请:

  • 在后台线程上打开数据库一次

  • 在后台线程上运行查询,可能与打开数据库的线程相同

  • 完成onDestroy()后关闭光标,例如活动的ListView或托管Cursor的片段

  • 如果可以的话,在完成数据库之后关闭数据库(根据定义,在您完成从数据库获得的if之后的某个时间)