将ArrayList传递给另一个类

时间:2012-09-01 14:24:13

标签: java android arraylist

我的应用程序中发生的是我从数据库中获取一个列,当我在System.out.println()中以arraylist格式显示我想要的内容时,该列有效,然后尝试将其传递给另一堂课我不断收到错误。任何人都知道为什么会这样吗?如果您能显示代码,请提前感谢。

我的主类的代码(相当长,所以只链接一小部分):

//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;
}
}

1 个答案:

答案 0 :(得分:2)

您尚未构造AFragmentTabDB对象,因此在调用setRoleList()时,您将在null对象上调用它。

更改您的行
AFragmentTabDB aFDB;

AFragmentTabDB aFDB = new AFragmentTabDB();