我的应用程序中发生的是我从数据库中获取一个列,当我在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;
}
}
答案 0 :(得分:2)
您尚未构造AFragmentTabDB对象,因此在调用setRoleList()时,您将在null对象上调用它。
从
更改您的行AFragmentTabDB aFDB;
到
AFragmentTabDB aFDB = new AFragmentTabDB();