0

我是 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

4

0 回答 0