如何访问不同活动中片段的 contentResolver?

Dan*_*tts 1 android android-contentresolver android-contentprovider android-fragments android-activity

情况是我有一个MainFragment(extends a ListFragment, implements LoaderManager.LoaderCallbacks<Cursor>) 是从MainActivity. DetailsActivity从该片段调用一个新活动以在列表视图中显示某个项目的内容,将 id 作为意图参数。如何getContentResolver()使用 Uri 访问其方法?

我现在从访问内容解析器中得到的错误是:

`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");
Run Code Online (Sandbox Code Playgroud)

安卓清单文件:

<provider
        android:authorities="com.xxxx.words.contentprovider.MainContentProvider"
        android:name=".contentprovider.MainContentProvider"/>
Run Code Online (Sandbox Code Playgroud)

或者我应该只返回一个BundleDetailsActivity初始片段和访问的内容提供商?

DJ.*_*hik 7

对于Java

ContentResolver resolver = getActivity().getContentResolver();

对于科特林

private var resolver = requireActivity().contentResolver


Nik*_*aut 5

只需简单地使用这个:

ContentResolver resolver = getActivity().getContentResolver();
Run Code Online (Sandbox Code Playgroud)