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