0

私はアンドロイドが初めてですが、これは簡単な作業です。ユーザーがそれらの名前から選択できるようにするスピナーを設定するために、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 が得られます。

4

0 に答える 0