Wie Sie Zugang zu contentResolver ein fragment in einer anderen Tätigkeit?
Ist die situation, dass ich eine MainFragment
(reicht ein ListFragment
implementiert LoaderManager.LoaderCallbacks<Cursor>
), die aufgerufen wird aus MainActivity
. Eine neue Aktivität DetailsActivity
ist aufgerufen, das fragment, um den Inhalt anzeigen eines bestimmten Elements in einer Liste anzeigen zu bekommen die id als Vorsatz argument. Wie kann ich getContentResolver()
um Zugriff auf dessen Methoden, die mit einem Uri?
Den Fehler jetzt bekomme ich den Zugriff auf content resolver ist:
`java.lang.IllegalArgumentException: Unknown URL content://com.xxxx.words.contentprovider/words`
uri = Uri.parse(MainContentProvider.CONTENT_URI.toString());
getContentResolver().insert(uri, contentValues);
CONTENT_URI = Uri.parse("content://" + "com.xxxx.words.contentprovider" + "/" + "words");
android-manifest-Datei:
<provider
android:authorities="com.xxxx.words.contentprovider.MainContentProvider"
android:name=".contentprovider.MainContentProvider"/>
oder sollte ich einfach nur wieder ein Bundle
aus, dass DetailsActivity
und Zugriff auf den content-provider in das erste fragment?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist, weil Ihr
Uri
nicht mit Ihrenandroid:authorities
. Ihreandroid:authorities
istcom.xxxx.words.contentprovider.MainContentProvider
. IhreUri
verwendetcom.xxxx.words.contentprovider
. Diese sind nicht die gleichen, und Sie müssen die gleichen sein.Bitte auch hinzufügen
android:exported
zu Ihrem<provider>
festgelegttrue
(wenn third-party-apps haben vollen Zugriff auf die provider) oderfalse
(sollten Sie nicht).Nur benutzen Sie einfach diese:
In
Activity
pass einfach auf,wennFragment
passgetActivity()
.Dieser funktioniert.