コード例 #1
0
  // Adiciona notas
  @Override
  public Uri insert(Uri uri, ContentValues values) {
    int uriTipo = sURIMatcher.match(uri);
    SQLiteDatabase sqlDB = notasDB.getWritableDatabase();

    long id = 0;
    Uri returnUri;
    switch (uriTipo) {
      case NOTAS:
        // Insere no banco de dados
        id = sqlDB.insert(Nota.TABELA, null, values);
        // Adiciona o ID da nova nota no final do URI
        returnUri = Uri.parse(BASE_PATH + "/" + id);
        break;

        // Caso o tipo não seja válido
      default:
        throw new IllegalArgumentException("URI desconhecida: " + uri);
    }
    // Notifica as mudanças
    getContext().getContentResolver().notifyChange(uri, null);

    // Retorna um URI com o ID da nota adicionada no final
    return returnUri;
  }
コード例 #2
0
  // Atualiza uma nota
  @Override
  public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
    int uriTipo = sURIMatcher.match(uri);
    SQLiteDatabase sqlDB = notasDB.getWritableDatabase();

    int totalEditadas = 0;
    switch (uriTipo) {
      case NOTAS:
        totalEditadas = sqlDB.update(Nota.TABELA, values, selection, selectionArgs);
        break;
      case NOTAS_ID:
        String id = uri.getLastPathSegment();
        if (TextUtils.isEmpty(selection)) {
          totalEditadas = sqlDB.update(Nota.TABELA, values, "_id=" + id, selectionArgs);
        } else {
          totalEditadas =
              sqlDB.update(Nota.TABELA, values, "_id=" + id + " and " + selection, selectionArgs);
        }
        break;
      default:
        throw new IllegalArgumentException("URI desconhecida: " + uri);
    }
    // Notifica as mudanças
    getContext().getContentResolver().notifyChange(uri, null);

    // Retorna o número de notas que foram editadas
    return totalEditadas;
  }
コード例 #3
0
  // Busca notas
  @Override
  public Cursor query(
      Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {

    // Construtor da query
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    queryBuilder.setTables(Nota.TABELA);

    // Descobre o tipo da URI (pode ser NOTAS(1) ou NOTAS_ID(2)
    int uriTipo = sURIMatcher.match(uri);
    switch (uriTipo) {
        // Busca TODAS as notas (não é necessário especificar nada dentro do case)
        // Exemplo: content://com.iop.listprovider.model.NotaCP/notas/
      case NOTAS:
        break;

        // Busca apenas a nota com o ID especificado
        // Exemplo: content://com.iop.listprovider.model.NotaCP/notas/5 (5 é o ID da nota)
      case NOTAS_ID:
        queryBuilder.appendWhere(Nota.ID + "=" + uri.getLastPathSegment());
        break;

        // Caso o tipo não seja válido
      default:
        throw new IllegalArgumentException("URI desconhecida: " + uri);
    }
    // Conexão e busca
    SQLiteDatabase database = notasDB.getWritableDatabase();

    Cursor cursor =
        queryBuilder.query(database, projection, selection, selectionArgs, null, null, sortOrder);

    // Notifica as mudanças
    cursor.setNotificationUri(getContext().getContentResolver(), uri);

    return cursor;
  }