Borrar y modificar elementos de un ContentProvider

Puedes utilizar el método delete() para eliminar elementos de un ContentProvider:

 

  int ContentProvider.delete(Uri uri, String seleccion,

                                                                                                     String[] argsSelecc)

Este método devuelve el número de elementos eliminados. Los tres parámetros del método se detallan a continuación:

uri                               URI correspondiente al ContentProvider a consultar.

seleccion        Clausula SQL correspondiente a WHERE.

argsSelecc       Lista de argumentos utilizados en el parámetro seleccion.

Si quisiéramos eliminar un solo elemento podríamos obtener su URI e indicarlo en el primer parámetro, dejando los otros dos a null. Si por el contrario quieres eliminar varios elementos puedes utilizar el parámetro seleccion. Por ejemplo, si quisiéramos eliminar todos los registros de llamada del número 555555555, escribiríamos:

 

getContentResolver().delete(Calls.CONTENT_URI,

                                                                         "number='555555555'", null);

También puedes utilizar el método update() para modificar elementos de un ContentProvider:

int ContentProvider.update(Uri uri, ContentValues valores,
                                  String seleccion, String[] argsSelecc)

Por ejemplo, si quisiéramos modificar los registros con número 555555555, por el número 444444444, escribiríamos:

 

 ContentValues valores2 = new ContentValues();

             valores2.put(Calls.NUMBER, "444444444");

             getContentResolver().update(Calls.CONTENT_URI, valores2,

                                                                                "number='555555555'", null);