我正在尝试使用查询结果填充微调器,如下所示:
DataBaseHelper mDbH = new DataBaseHelper(this);
Spinner combo1 = (Spinner) findViewById(R.id.combo1);
mDbH.open();
Cursor c1 = null;
c1 = mDbH.consulta4();
startManagingCursor(c1);
if(c1.moveToFirst() == false){
Log.e("cursor c ","vacio");
c1.close();
mDbH.close();
}else{
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c1,new String[] {"nombre"},new int[] {android.R.id.text1});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
combo1.setAdapter(adapter);
c1.close();
mDbH.close();
}
但是当我测试我的应用时,它不起作用! LogCat不会显示任何错误!我有点迷失在这里!
有什么想法吗?
答案 0 :(得分:1)
将光标传递给SimpleCursorAdapter后关闭光标。 通过这样做,您可以使Cursor释放其数据并使其无法使用。因此,SimpleCursorAdapter不能再使用它了。 在代码的else部分删除此行(在setAdapter之后):
c1.close();
再试一次。
答案 1 :(得分:0)
startManagingCursor(c1)
已经为您处理了关闭。在这里你的适配器将需要光标在屏幕上渲染你的对象,所以你不应该关闭它。