• La respuesta la encuentras aquí: https://androidclarified.com/android-volley-example/.

    Consiste en que utilices una JsonObjectRequest o una JsonArrayObjectRequest, a las cuales, en su constructor, se le indica el método (GET o POST) y se le puede pasar un HasMap con los parámetros que irán en el body:

    JSONObject postparams = new JSO…[Leer más]

  • De RoboGuice a Dagger 2 – Parte 4 (Extra, otros problemas)
    Esta es la cuarta parte de los tres artículos anteriores sobre cómo realizar la migración del inyector de dependencias RoboGuice a Dagger 2. Puedes le

  • En el caso de que tu activity no sea destruida (es decir, que puedas volver a ella pulsando “Atrás”), no hay que hacer nada, porque el contenido de esta no es destruido. Pero si es destruida (porque cierras la activity), según tu propósito, tienes que guardar los elementos seleccionados en memoria (una clase singleton) o en el dispositivo (una ba…[Leer más]

  • De RoboGuice a Dagger 2 – Parte 3
    Dependencias cíclicas

    Esta es la tercera parte del tutorial de migración de RoboGuice a Dagger 2. Puedes leerla sin necesidad de haber leído las anteriores, pero aquí tienes el

  • De RoboGuice a Dagger 2 – Parte 2
    Sobrecarga de módulos

    Esta es la segunda parte del tutorial de migración de RoboGuice a Dagger 2. Puedes leerla sin necesidad de haber leído la anterior, pero aquí tienes el enl

  • De RoboGuice a Dagger 2 – Parte 1
    Conversión de RoboGuice a Dagger

    Esta es la primera parte del tutorial de migración de RoboGuice a Dagger 2. Aquí tienes el enlace a las otras dos partes:

    Parte 2: So

  • De RoboGuice a Dagger 2
    Cómo migrar de un a librería a la otra teniendo en cuenta la independencia de las librerías, la sobrecarga de módulos y las dependencias cíclicas.

    Esta es la introducción del tutor

  • El patrón arquitectónico MVP, Model View Presenter (Modelo Vista Presentador) lleva en auge desde hace unos años hasta la fecha y el motivo es porque el MVP es un perfecto ejemplo de arquitectura limpia que ga

  • Gracias a ti también. Sois la pieza que hace que esto tenga sentido. 😉

  • En esta entrada se irán publicando aspectos puntuales, pequeños trucos y trozos de código útiles para Android que he ido descubriendo durante mi experiencia como programador de Android.
    Bloquear el Dra

  • Vas a tener que ser más concreto. El ejemplo es muy básico. Lo único que no se explica es cómo tratar un JSON de respuesta. ¿Puedes indicar qué te falta o dónde te pierdes?

  • Para optimizar el uso de la memoria, el inyector de dependencias Dagger 2 permite crear subcomponentes con ámbito (scoped subcomponents) cuya finalidad es la de utilizar instancias únicas con ámbito (scoped si

  • (Esta entrada sobre cómo publicar una librería es una traducción del artículo publicado en el blog The Cheese Factory. Podéis consultar el articulo aquí y darle a me gusta en su página de Facebook porque os asegur

  • Esta tarde buscaré dónde tengo los proyectos y restauraré los enlaces para que los veas. Gracias por avisar, Jesús.

  • Si te refieres a los parámetros que van en la ruta, Volley no parece disponer de un método para ello. He estado mirando los métodos de la clase Request de Volley y no parece haber ninguno para que concatene automáticamente los parámetros recibidos en un HashMap a la ruta. A fin de cuentas, es tan fácil como meterlos en la ruta:

    public void…[Leer más]

  • Girar tu dispositivo ya no será un problema
    En Android, los dispositivos móviles permiten rotar la pantalla y ofrecer un layout distinto según la orientación. La rotación de la pantalla conlleva tener que rest

  • Juan José Melero ha escrito una nueva entrada, Callbacks hace 2 años, 11 meses

    Interfaces, callbacks, listeners, llámalos como quieras, pero úsalos
    Los callbacks funcionan de forma similar a un listener. Cuando tenemos que comunicar dos clases cuya visibilidad es unidireccional, como por e

  • Perdón por no haber visto el comentario antes. Lo has resuelto ya o aún quieres que te mande código de ejemplo?

  • Sí, por favor, copia y pega la clase en la que haces la llamada con Volley y explica cuándo se hace la llamada y qué debería devolverte el servicio.

    Si no cabe aquí, mándala a mi correo.

    Aunque así, a bote pronto, se me ocurre que puede que estés intentando insertar un registro con una clave primaria idéntica a uno que ya existe en el servidor…[Leer más]

  • Una vía rápida al JSON
    ¿El mundo de los servicios web siempre te ha parecido algo complicado? Ya es hora de perder ese miedo con la biblioteca Volley para Android. Gracias a esta biblioteca podremos hacer pe

    • Sí, por favor, copia y pega la clase en la que haces la llamada con Volley y explica cuándo se hace la llamada y qué debería devolverte el servicio.

      Si no cabe aquí, mándala a mi correo.

      Aunque así, a bote pronto, se me ocurre que puede que estés intentando insertar un registro con una clave primaria idéntica a uno que ya existe en el servidor y en las clases php no estás contemplando respuesta para este tipo de fallo SQL y devuelves nulo.

      En cualquier casoe no parece ser un error relacionado con Volley, sino con la parte servidora.

    • Si te refieres a los parámetros que van en la ruta, Volley no parece disponer de un método para ello. He estado mirando los métodos de la clase Request de Volley y no parece haber ninguno para que concatene automáticamente los parámetros recibidos en un HashMap a la ruta. A fin de cuentas, es tan fácil como meterlos en la ruta:

      public void enviarPeticionGETConParametros(){
           String url = "http://www.mywebservice.call.service";
           HashMap<String, String> parametros = new HashMap<>();
           parametros.put("parametro1", "valor1");
           parametros.put("parametro2", "valor2");

           String urlConParametros = incluirParametrosAUrl(url, parametros);

           JsonObjectRequest peticion= new JsonObjectRequest(urlConParametros,
               new Response.Listener() {
                   @Override
                   public void onResponse(JSONObject response) {
                       // Hacer algo con el json obtenido
                   }
               },
               new Response.ErrorListener() {
                   @Override
                   public void (VolleyError error) {
                       // Hacer algo con el error.
                   }
               });

           peticion.setTag(MY_TAG);
           requestQueue.add(peticion);
      }

      public String incluirParametrosAUrl(String url, HashMap parametrosGET) {

           if (parametrosGET != null && !parametrosGET.isEmpty()) {
               url += "?";

               Iterator<Map.Entry<String, String>> it = parametrosGET.entrySet().iterator();

               while (it.hasNext()) {
                   Map.Entry<String, String> parametro = it.next();
                   url += parametro.getKey() + "=" + parametro.getValue();
                   if (it.hasNext()) {
                      url += "&";
                   }
               }
           }
           return url;
      }

    • Vas a tener que ser más concreto. El ejemplo es muy básico. Lo único que no se explica es cómo tratar un JSON de respuesta. ¿Puedes indicar qué te falta o dónde te pierdes?

    • Gracias a ti también. Sois la pieza que hace que esto tenga sentido. 😉

    • La respuesta la encuentras aquí: https://androidclarified.com/android-volley-example/.

      Consiste en que utilices una JsonObjectRequest o una JsonArrayObjectRequest, a las cuales, en su constructor, se le indica el método (GET o POST) y se le puede pasar un HasMap con los parámetros que irán en el body:

      JSONObject postparams = new JSONObject();
      postparams.put(“nombre”, “Pedro”)
      postparams.put(“sexo”, “hombre”)
      […]

      JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST,
      url, postParams, new Response.Listener() {
      @Override
      public void onResponse(JSONObject response) {
      // Success Callback
      }
      },
      new Response.ErrorListener() {
      @Override
      public void onErrorResponse(VolleyError error) {
      // Failure Callback
      }
      });

      Si quieres enviar cabeceras, sobrescribes el método getHeaders() de la petición para que devuelva un HashMap con las cabeceras que quieres enviar.

  • Cargar más