为什么这个方法得到Null指针异常?

时间:2013-11-03 00:52:07

标签: android arrays arraylist android-sqlite android-spinner

我是android新手,但这是一项简单的任务。我试图从SQLite表中获取一个名称列表,以便设置一个微调器,让用户在这些名称之间进行选择。但由于某种原因,Eclipse说我有一个空指针异常。为什么?我经常在开发过程中测试,所以我知道这个全新的代码是导致错误的原因。请帮助..

这是设置我的微调器的方法

private void setUpSpin() {
    // TODO Auto-generated method stub
    ProjDbUI namer = new ProjDbUI(Projects.this);
    if(namer.getProjects() != null){
    projNames = namer.getProjects();
    }else{
        Dialog d = new Dialog(this);
        d.setTitle("Null name array!");
        TextView tv = new TextView(this);
        tv.setText("FAilure");
        d.setContentView(tv);
        d.show();
    }
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(Projects.this, android.R.layout.simple_spinner_item, projNames);
    spin = (Spinner) findViewById(R.id.spProjectChoise);
    spin.setAdapter(adapter);
    spin.setOnItemSelectedListener(this);
}

这是ProjDbUI的方法,必须引起问题:

public String[] getProjects() {
    String[] columns = new String[]{KEY_ROWID, KEY_NAME, KEY_HOTNESS};
    ArrayList<String> projNames = new ArrayList<String>();
    Cursor c = myDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
    if(c != null){
        int i = 0;
        for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
        if(!projNames.contains(c.getString(1))) 
            projNames.add(c.getString(1));
        }

    }
    String[] reString = new String[projNames.size()];
    for(int i = 0;i < projNames.size();i++){
        reString[i] = projNames.get(i);
    }
    return reString;
}

有什么想法吗?

如果我打印Thread.currentThread.getStackTrace()我得到: [Ljava.lang.StackTrace,@ 45fe09c8 如果我打印抛出的异常.toString(),我得到: 显示java.lang.NullPointerException

0 个答案:

没有答案