Android 微调器为空,尝试在子例程中填充SimpleCursorAdaptor

Android 微调器为空,尝试在子例程中填充SimpleCursorAdaptor,android,android-spinner,Android,Android Spinner,我试图用数据库中的数据填充微调器。代码在一个子例程中。执行所有操作,但微调器为空。如果我将代码复制到“onCreate(Bundle saveInstanceState)”中,它可以正常工作。我认为我有上下文问题,但无法解决它 下面是子程序: public void showMatchNames (){ Cursor c; String sMatchName = "MatchTable"; c = db.query(sMatchName, n

我试图用数据库中的数据填充微调器。代码在一个子例程中。执行所有操作,但微调器为空。如果我将代码复制到“onCreate(Bundle saveInstanceState)”中,它可以正常工作。我认为我有上下文问题,但无法解决它

下面是子程序:

public void showMatchNames (){      
    Cursor c;

    String sMatchName = "MatchTable";        
    c = db.query(sMatchName, new String[]{KEY_ROWID, KEY_TITLE}, null, null, null, null, null);
    if(c.moveToFirst()){

        SimpleCursorAdapter MatchAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item, c, new String[]{KEY_TITLE}, new int[]{android.R.id.text1});
        MatchAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        Spinner spin2 = (Spinner)this.findViewById(R.id.spinner2);
        spin2.setAdapter(MatchAdapter);
    }
    scrMatchView.setOnItemSelectedListener(new mySpinnerListener());            
    c.close(); // Done with Cursor so close it
}
数据库中有数据,通过导出到SQliteMan并执行查询来确认。 我还可以从数据库中提取名称,并使用“showMatchNames”子例程中的简单ArrayAdapter填充微调器

我很确定这是件简单的事情,但我已经盯着它看了好几个小时了,无法让它工作


欢迎提供任何帮助。

{把头撞在桌子上}不要关闭光标!!一旦我删除了c。关闭它就可以了。那只是6个小时,我再也不会回来了。无论如何,感谢您的关注,也许这会帮助其他有类似问题的人。