コード例 #1
0
  @Override
  public Cursor query(
      Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {

    // Uisng SQLiteQueryBuilder instead of query() method
    SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
    // check if the caller has requested a column which does not exists
    checkColumns(projection);
    // Set the table
    queryBuilder.setTables(NotesTable.TABLE_NOTES);

    int uriType = sURIMatcher.match(uri);
    switch (uriType) {
      case NOTES:
        break;
      case NOTEID:
        // adding the ID to the original query
        queryBuilder.appendWhere(NotesTable.COLUMN_ID + "=" + uri.getLastPathSegment());
        break;
      default:
        throw new IllegalArgumentException("Unknown URI: " + uri);
    }

    SQLiteDatabase db = mDb.getWritableDatabase();
    Cursor cursor =
        queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
    // make sure that potential listeners are getting notified
    cursor.setNotificationUri(getContext().getContentResolver(), uri);

    return cursor;
  }
コード例 #2
0
 @Override
 public Uri insert(Uri uri, ContentValues values) {
   int uriType = sURIMatcher.match(uri);
   SQLiteDatabase sqlDB = mDb.getWritableDatabase();
   long id;
   switch (uriType) {
     case NOTES:
       id = sqlDB.insert(NotesTable.TABLE_NOTES, null, values);
       break;
     default:
       throw new IllegalArgumentException("Unknown URI: " + uri);
   }
   getContext().getContentResolver().notifyChange(uri, null);
   return Uri.parse(BASE_PATH + "/" + id);
 }