Android - Pasar variable ArrayList<String> a doInBackground

 
Vista:
sin imagen de perfil

Pasar variable ArrayList<String> a doInBackground

Publicado por Joaquín (24 intervenciones) el 28/01/2017 19:07:22
Quiero pasar la variable pidList del tipo ArrayList<String> a doInBackground de una clase que extiende de AsyncTask llamada ActualizarFavoritos. Para ello hago lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
if (pidList!=null){
     new ActualizarFavoritos().execute(pidList);
}
Y en la clase ActualizarFavoritos:
class ActualizarFavoritos extends AsyncTask<ArrayList<String>, String, String> {
        @Override
        protected void onPreExecute() {
}
protected String doInBackground(ArrayList<String>... args) {
 ArrayList<String> pidListpassed = args[0];
HashMap<String, ArrayList<String>> params = new HashMap<String, ArrayList<String>>();
params.put("pidList", pidListpassed);
JSONObject json = jParser.makeHttpRequest(url_favoritos, "POST", params);
             try {
                //SUCCESS TAG
                int success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
}
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }
protected void onPostExecute(String result) {
            pDialog.dismiss();
        }
Y me da error al ejecutar la aplicación. En el log pone:
Caused by: java.lang.NullPointerException
En la línea que corresponde a: int success = json.getInt(TAG_SUCCESS);
Llevo dándole vueltas un tiempo y no encuentro donde me equivoco. Agradecería a quién me pudiera orientar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Pasar variable ArrayList<String> a doInBackground

Publicado por Luis (20 intervenciones) el 29/01/2017 22:39:07
Has mirado que tu propiedad "json" tenga valor y no sea null?

Ese error te dice claramente que estas intentando ejecutar un método sobre un null, puede ser que tu llamada no te este trayendo nada y te devuelva un null.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Pasar variable ArrayList<String> a doInBackground

Publicado por Joaquín (24 intervenciones) el 30/01/2017 13:34:20
He comprobado que los parámetros a pasar son correctos:
1
2
3
4
5
6
7
8
9
ArrayList<String> pidListpassed = args[0];
 Log.d("pidListpassed", pidListpassed + " ,");
HashMap<String, ArrayList<String>> params = new HashMap<String, ArrayList<String>>();
        	params.put("pidList", pidListpassed);
La url también es correcta, así como el PHP, pero json es nulo:
JSONObject json = jParser.makeHttpRequest(url_favoritos, "POST", params);
            if(json == null){
            	Log.d("KKKKKK",  "json es nulo");
            }
Luego el problema debería estar en el JSON, pero lo he utilizado en otros sitios y funciona, así que no se en que falla.
Te puedo poner el JSONParser por si ves algo raro, pero me ha estado funcionando con la versión 6.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Pasar variable ArrayList<String> a doInBackground

Publicado por Joaquín (24 intervenciones) el 04/02/2017 13:34:47
Disculpa la tardanza en responder pero he estado liado. El error era una sandez de las que pasan: no había dado el permiso de acceso a internet en el Manifest.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar