Pasando ArrayList a otra clase
Frecuentes
Visto 4,192 veces
0
Lo que está sucediendo aquí en mi aplicación es que obtengo una columna de la base de datos, que funciona porque cuando System.out.println() muestra exactamente lo que quiero en un formato de lista de matrices, luego trato de pasar eso a otra clase y Sigo recibiendo un error. ¿Alguien sabe por qué está pasando esto? Por favor, si puede mostrar el código, gracias de antemano.
El código de mi clase principal (bastante largo, por lo que solo vincula una pequeña parte):
//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);
Aquí está la clase a la que estoy tratando de pasar esto:
public class AFragmentTabDB {
ArrayList<String> roles = new ArrayList<String>();
public void setRoleList(ArrayList<String> aL){
this.roles = aL;
}
public ArrayList<String> getRoleList(){
return roles;
}
}
Aquí es donde está mi 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 Respuestas
2
No ha construido el objeto AFragmentTabDB, por lo que cuando llama a setRoleList() lo está llamando en un objeto nulo.
Cambia tu línea de
AFragmentTabDB aFDB;
a
AFragmentTabDB aFDB = new AFragmentTabDB();
Respondido el 01 de Septiembre de 12 a las 15:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java android arraylist or haz tu propia pregunta.
nunca se llamó a getRoleList() - wtsang02
@wtsang02, está en la última línea del primer segmento de código: SJuan76
Perdón por no vincular el error, fue un error de puntero nulo pero la respuesta de brianestey funcionó: D. - JoeyL