0

ここで私のアプリで起こっているのは、データベースから列を取得することです。これは、System.out.println() が配列リスト形式で必要なものを正確に示しているときに機能し、それを別のクラスに渡そうとします。エラーが発生し続けます。なぜこれが起こっているのか知っている人はいますか?コードを表示できる場合は、事前に感謝します。

私のメインクラスのコード(かなり長いので、ほんの一部をリンクしています):

//Declarations at the top
ArrayList<String> roles = new ArrayList<String>();
AFragmentTabDB aFDB;
DataBaseHelper myDB;

//Trying to pass the arraylist to another class called aFDB
roles = myDB.getTableColumn("role", new String[] {"name"});
System.out.println(roles);  
aFDB.setRoleList(roles);

これを渡そうとしているクラスは次のとおりです。

public class AFragmentTabDB {


ArrayList<String> roles = new ArrayList<String>();

public void setRoleList(ArrayList<String> aL){
    this.roles = aL;

}

public ArrayList<String> getRoleList(){
    return roles;

}

}

これが私の getTableColumn() の場所です:

public class DataBaseHelper extends SQLiteOpenHelper{

    public ArrayList<String> getTableColumn(String tableName, String[] column){

    ArrayList<String> aL = new ArrayList<String>();

    cursor = myDataBase.query(tableName, column, null, null, null, null, null);

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
      aL.add(cursor.getString(0));
      cursor.moveToNext();
    }

    cursor.close();
    return aL;
}
}
4

1 に答える 1

2

AFragmentTabDBオブジェクトを作成していないため、setRoleList()を呼び出すと、nullオブジェクトでそれを呼び出すことになります。

からあなたのラインを変更します

AFragmentTabDB aFDB;

AFragmentTabDB aFDB = new AFragmentTabDB();
于 2012-09-01T14:32:20.137 に答える