使用Cursor填充微调器时出现问题

时间:2011-06-16 17:16:47

标签: android sqlite cursor spinner

我在使用SQLite数据库中的数据填充我的微调器时出现问题。这是我的活动中的代码。活动崩溃,无法启动活动ComponentInfo错误,如箭头所示。

public class ProjectsActivity extends Activity {

private ReelDbAdapter dbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.projects_select);

    fillProjectSpinner();

}

private void fillProjectSpinner(){
    // initialize cursor to manage data binding to spinner

    Cursor projectCursor = null;
    Spinner spnExistingProjects = (Spinner)findViewById(R.id.spnExistingProject);

--->    projectCursor = dbHelper.getExistingProjects();

    //startManagingCursor(projectCursor);
    /*
    //get the list of project names from the database
    String[] from = new String[] {dbHelper.clmProjectName};
    //add a new item to the spinner for each of the rows in the database
    int [] to = new int[]{R.id.txtViewProjectRow};

    //initialize a cursor adapter (similar to ArrayAdapter when populating a spinner from a pre-defined array)
    SimpleCursorAdapter projectAdapter = new SimpleCursorAdapter(this, R.layout.view_project_row, projectCursor, from, to);
    //add all the rows to the spinner
    spnExistingProjects.setAdapter(projectAdapter);
    */
}

这是来自我的dbAdapter的getExistingProjects方法的代码         public Cursor getExistingProjects(){

    if(mDb == null)
    {
        this.open();
    }

    return mDb.query(dbTableProject, new String[] {clmProjectName, clmProjectShootingTitle, clmProjectJobNumber},
            null, null, null, null, null);
}

有关我可能做错的任何线索? TIA提供任何帮助。 规范

1 个答案:

答案 0 :(得分:0)

为什么不在方法中返回光标之前确保查询返回了什么?在其中放入一条日志行,吐出光标的数量。此外,在使用调试器时,您应该能够轻松地看到这一点。

另外,为什么当你要将它初始化几行时,为光标的减速度赋值为null。在一行中完成所有工作。

最后,你在尝试使用this.open()行的数据库是什么?我显然无法用你发布的代码告诉我,但试着抓住整个事情并吐出strackTrace。你应该看到你的问题。