填充Android Spinner

时间:2012-10-24 15:07:27

标签: android spinner simplecursoradapter

我正在尝试使用查询结果填充微调器,如下所示:

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不会显示任何错误!我有点迷失在这里!

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

将光标传递给SimpleCursorAdapter后关闭光标。 通过这样做,您可以使Cursor释放其数据并使其无法使用。因此,SimpleCursorAdapter不能再使用它了。 在代码的else部分删除此行(在setAdapter之后):

c1.close();

再试一次。

答案 1 :(得分:0)

startManagingCursor(c1)已经为您处理了关闭。在这里你的适配器将需要光标在屏幕上渲染你的对象,所以你不应该关闭它。