2016-11-05 37 views
0

我的下一個內容提供商 要在議程表中插入一行,我做的:插入一行與Android內容提供商

ContentValues values = new ContentValues(1); 
values.put("MSG", "test"); 
    context.getContentResolver().insert(DataProvider.CONTENT_URI_AGENDA, values); 

和一切運作良好。

但是現在,我想使用帶有AGENDA_INSERTWITHCONFLICT的uri來插入一行。 請,我怎樣才能修改該行:

context.getContentResolver().insert(DataProvider.CONTENT_URI_AGENDA, values); 

辦呢?

這裏是我的供應商:

public class DataProvider extends ContentProvider { 
    public static final String TAGPROVIDER = "net.techabout.medappointment.provider"; 
    public static final Uri CONTENT_URI_AGENDA = Uri.parse("content://"+TAGPROVIDER+"/agenda"); 

    public static final String TABLE_AGENDA = "agenda"; 

    private DbHelper dbHelper; 

    private static final int AGENDA_ALLROWS = 5; 
    private static final int AGENDA_INSERTWITHCONFLICT=7; 

    private static final UriMatcher uriMatcher; 

    static { 
     uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
     uriMatcher.addURI(TAGPROVIDER, "agenda", AGENDA_ALLROWS); 
     uriMatcher.addURI(TAGPROVIDER, "agenda", AGENDA_INSERTWITHCONFLICT); 
    } 

    @Override 
    public Uri insert(Uri uri, ContentValues values) { 
     SQLiteDatabase db = dbHelper.getWritableDatabase(); 

     long id; 
     switch (uriMatcher.match(uri)) { 
      case AGENDA_ALLROWS: 
       id = db.insertOrThrow(TABLE_AGENDA, null, values); 
       break; 
      case AGENDA_INSERTWITHCONFLICT: 
        id=db.insertWithOnConflict(TABLE_AGENDA, BaseColumns._ID, values, SQLiteDatabase.CONFLICT_REPLACE); 
        break; 

      default: 
       throw new IllegalArgumentException("Unsupported URI: " + uri); 
     } 

     Uri insertUri = ContentUris.withAppendedId(uri, id); 
     getContext().getContentResolver().notifyChange(insertUri, null); 
     return insertUri; 
    } 

} 

回答

1

化妝如下更改,請使用命名convetions的要求。

// content provider 
static { 
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    uriMatcher.addURI(TAGPROVIDER, "agenda", AGENDA_ALLROWS); 
    uriMatcher.addURI(TAGPROVIDER, "agenda_insert_conflicts", AGENDA_INSERTWITHCONFLICT); 
} 

調用機制

String URL = "net.techabout.medappointment.provider/agenda_insert_conflicts"; 

    Uri uri = Uri.parse(URL); 
context.getContentResolver().insert(uri , values); 
+0

謝謝Sush先生 –

+0

@LuizAlves是我的榮幸 – Sush