当我使用Volley连接到我的API时,我得到一个NullPointerException,这是我正在使用的方法:
List<Empresas> empresas = rellenar();
private List<Empresas> rellenar() {
final List<Empresas> empresas2 = null;
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, "APIurl",(JSONObject)null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONArray jsonArray = response.getJSONArray("results");
int id;
String nombre_franquicia;
String nombre_categoria;
String nombre;
String descripcion;
String contenido;
String direccion;
String foto_negocio;
String foto_principal;
String horario;
String telefono;
for(int i=0; i<jsonArray.length(); i++) {
JSONObject objeto = jsonArray.getJSONObject(i);
if (objeto.getString("id") != null && objeto.getString("id")!="null") {
id = Integer.parseInt(objeto.getString("id"));
} else {
id = 0;
}
if (objeto.getString("nombre_franquicia")!=null && objeto.getString("nombre_franquicia")!="null"){
nombre_franquicia = objeto.getString("nombre_franquicia");
}else{
nombre_franquicia = "No disponible";
}
if(objeto.getString("nombre_categoria")!=null && objeto.getString("nombre_categoria")!="null") {
nombre_categoria = objeto.getString("nombre_categoria");
}else{
nombre_categoria = "No disponible";
}
if(objeto.getString("nombre")!=null && objeto.getString("nombre")!="null") {
nombre = objeto.getString("nombre");
}else{
nombre = "No disponible";
}
if(objeto.getString("descripcion")!=null && objeto.getString("descripcion")!="null") {
descripcion = objeto.getString("descripcion");
}else{
descripcion = "No disponible";
}
if(objeto.get("contenido")!=null && objeto.getString("contenido")!="null") {
contenido = objeto.getString("contenido");
}else{
contenido = "No disponible";
}
if(objeto.getString("direccion")!=null && objeto.getString("direccion")!="null") {
direccion = objeto.getString("direccion");
}else{
direccion = "No disponible";
}
if(objeto.getString("foto_negocio")!=null && objeto.getString("foto_negocio")!="null") {
foto_negocio = objeto.getString("foto_negocio");
}else{
foto_negocio = "No disponible";
}
if(objeto.getString("foto_principal")!=null && objeto.getString("foto_principal")!="null") {
foto_principal = objeto.getString("foto_principal");
}
else{
foto_principal = "No disponible";
}
if(objeto.getString("horario")!=null && objeto.getString("horario")!="null") {
horario = objeto.getString("horario");
}else{
horario = "No disponible";
}
if(objeto.getString("telefono")!=null && objeto.getString("telefono")!="null") {
telefono = objeto.getString("telefono");
}
else{
telefono = "No disponible";
}
Empresas negocio = new Empresas( id,nombre_franquicia, nombre_categoria, nombre, descripcion,
contenido, direccion, foto_negocio,foto_principal, horario,telefono);
empresas2.add(negocio);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error){
Log.e("VOLLEY","ERROR");
}
}
);
requestQueue.add(jsonObjectRequest);
return empresas2;
}
当活动开始时,List<Empresas> empresas
调用片段的onCreateView中的方法,几秒钟后我在empresas2.add(negocio)
中得到一个NullPointerException,这是我第一次使用Volley而且我没有了解它。
答案 0 :(得分:3)
final List<Empresas> empresas2 = null;
在您的代码中为NULL分配。
替换为:
List<Empresas> empresas2 = new ArrayList<Empresas>();