Hola a todos,
Estoy haciendo un gestor de tareas en android (otro) y tengo un atasque con un par de cosas que no deberían ser muy difíciles, pero me están costando mas de la cuenta, así que agradecería cualquier ayuda.
Lo que necesitaría es saber si hay alguna manera de hacer una llamada al contentprovider para que me inserte una fila que sea la copia de otra, pasandole únicamente su uri.
Por si acaso no se entiendo explico a porque quiero esto.
El caso es que tengo un listfragment en el que muestro los datos básicos de cada elemento de una tabla de acciones. Se muestran con la ayuda de un cursorAdapter propio en el que recojo 3 datos, (completada, titulo, recurrente). Al pulsar sobre un elemento de la lista, se actualiza en la base de datos el valor de completada a 1. Tengo un listener que hace una llamada a
ContentValues contentValue = new ContentValues();
contentValue.put(Actions.ACTION_COMPLETED, "1");
contentValue.put(Actions.DIRTY, "1");
mActivity.getContentResolver().update(actionUri, contentValue, null,
null);
El problema viene cuando es una acción recurrente. Al completarla, no solo tengo que actualizar el valor de completado, sino que tengo que copiar los valores que tuviera en base de datos a una fila nueva, actualizando una fecha.
La tabla de acciones tiene otros 10 campos, algunos de los cuales son comentarios de gran tamaño, por lo cual a la hora de mostrar la lista no los traigo, con lo cual no puedo hacer la llamada de la misma forma, porque no puedo rellenar el ContentValues con todos los campos y hacer una inserción.
Quizás la única solución se hacer la consulta con todos los campos de la acción, aunque no vaya a mostrarlos, pero creo que tiene que haber una manera mas fácil de hacerlo.
PD: He probado a poner un trigger en la base de datos, que al actualizar si se cumplen unas condiciones me inserte una nueva fila, pero no he conseguido hacer que funcione.
Si se os ocurre alguna solución, os agradecería vuestra ayuda.
Saludos