私はアンドロイドが初めてですが、これは簡単な作業です。ユーザーがそれらの名前から選択できるようにするスピナーを設定するために、SQLite テーブルから名前のリストを取得しようとしています。しかし、何らかの理由で Eclipse は、null ポインター例外があると言います。なんで?私は開発中に頻繁にテストを行っているので、この新しいコードがエラーの原因であることはわかっています。助けてください..
これは私のスピナーを設定する方法です
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 が得られます。