• 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

  • 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.

  • Cuando se instala una aplicación en un dispositivo, esta instala consigo una serie de directorios en la carpeta “data/data”, situada en el directorio raíz del dispositivo. Esto podemos verlo utilizando el Android

  • Un mundo lleno de eventos
    El trabajo en una empresa requiere la movilización de gran cantidad de personal para el desarrollo de una sola aplicación: el briefing con el cliente, el análisis de requisitos, la el

  • ¿Puedo cambiar la fuente desde el xml? Sí, pero…
    Una forma alternativa y muy recomendable para hacer más fácil el uso de fuentes es crear un TextView personalizado al que podamos agregarle la fuente que

  • Cómo usar una tipografía personalizada en Android
    Muchas veces queremos utilizar en nuestras aplicaciones una fuente distinta de la predeterminada. ¿Cómo logramos esto? A continuación explicaremos cómo y utili

  • El secreto de los SparseBooleanArray
    Cuando desarrollamos una aplicación Android que utiliza listas de elementos (y ¿qué aplicación que se precie no lo hace?), una de las funciones más recurrentes de las que quer

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

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

    • 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 base de datos, o un fichero de texto) y luego recuperarlos. Tienes que guardar algo que te permita identificar los elementos que estaban marcados para, en el momento de cargar los elementos, consultar cuáles estaban marcados y volver a ponerlos marcados en el onBindView().

  • Juan José Melero ha cambiado su imagen de perfil. hace 6 años, 4 meses

  • El perfil de Juan José Melero fue actualizado hace 6 años, 4 meses

  • Juan José Melero ha actualizado una entrada en el grupo Logo del grupo Grupo de pruebaGrupo de prueba hace 7 años

    Pero soy miembro. Tengo que ser administrador.