1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Contentprovider URI aufbauen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von maluramichael, 05.03.2011.

  1. maluramichael, 05.03.2011 #1
    maluramichael

    maluramichael Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    05.03.2011
    Hallo Leute,

    ich bin relativ neu in der Android Entwicklung und habe nun ein kleines Projekt am laufen. Dafür hab ich mir einige Contentprovider geschrieben die ihren Inhalt aus einer XML bekommen.

    Momentan hab ich aber das Problem mit dem einfügen der Daten IN den CP. Meiner Meinung nach liegt das an der URI die ich erstellt habe.

    Fehlermeldung:
    Code:
    03-05 10:42:46.723: ERROR/AndroidRuntime(322): Caused by: java.lang.IllegalArgumentException: Unknown URIcontent://de.devnetik.android.partybibel.provider.eventsprovider/events
    03-05 10:42:46.723: ERROR/AndroidRuntime(322):     at de.devnetik.android.partybibel.provider.EventsProvider.insert(EventsProvider.java:108)
    03-05 10:42:46.723: ERROR/AndroidRuntime(322):     at de.devnetik.android.partybibel.LaunchActivity.onCreate(LaunchActivity.java:40)
    03-05 10:42:46.723: ERROR/AndroidRuntime(322):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    03-05 10:42:46.723: ERROR/AndroidRuntime(322):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    03-05 10:42:46.723: ERROR/AndroidRuntime(322):     ... 11 more
    
    
    Code
    Code:
    //EventsProvider.java
    
    	@Override
    	public Uri insert(Uri uri, ContentValues initialValues) {
    
    		if (uriMatcher.match(uri) != EVENT) {
    			throw new IllegalArgumentException("Unknown URI" + uri);
    		}
    
    		ContentValues values;
    		if (initialValues != null) {
    			values = new ContentValues(initialValues);
    		} else {
    			values = new ContentValues();
    		}
    
    		SQLiteDatabase db = this.databaseHelper.getWritableDatabase();
    		long rowId = db.insert(TABLENAME, Event.TITLE, values);
    
    		if (rowId > 0) {
    			Uri eventUri = ContentUris.withAppendedId(Event.CONTENT_URI, rowId);
    			this.getContext().getContentResolver().notifyChange(eventUri, null);
    			return eventUri;
    		}
    
    		throw new SQLException("Failed to insert row into " + uri);
    	}
    
    URI + Aufruf
    Code:
    		String uriString = "content://de.devnetik.android.partybibel.provider.eventsprovider/events";
    		Uri uri = Uri.parse(uriString);
    
    		ContentValues initialValues = new ContentValues();
    		initialValues.put(EventsProvider.Event.TITLE, "Testtitel");
    
    		this.eventProvider.insert(uri, initialValues);
    
    hoffe mir kann jemand verständlich erklären was ich falsch mache :D
    lg michi
     
  2. maluramichael, 06.03.2011 #2
    maluramichael

    maluramichael Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    05.03.2011
    Kann mir niemand helfen? Ist wirklich wichtig das ich bald erfahre was ich falsch mache.
     

Diese Seite empfehlen