Android 内容提供者';正在调用“”的查询方法

Android 内容提供者';正在调用“”的查询方法,android,android-contentprovider,Android,Android Contentprovider,我有一个带有片段和内容提供者的活动。出于某种原因,我的ContentProvider的查询方法从未被调用——我已经在Eclipse调试器中对此进行了验证。以下是我的相关片段代码: public class ListFrag extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> { private SimpleCursorAdapter mAdapter; @Override public void

我有一个带有片段和内容提供者的活动。出于某种原因,我的ContentProvider的查询方法从未被调用——我已经在Eclipse调试器中对此进行了验证。以下是我的相关片段代码:

public class ListFrag extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {
private SimpleCursorAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    Intent myData = getActivity().getIntent();
    Bundle info = myData.getExtras();

    String[] dataColumns = { "stitchname" };
    int[] viewIDs = { R.id.stitchlist1 };
    mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.stitchlist, null, dataColumns, viewIDs, 0);
    setListAdapter(mAdapter);
    getLoaderManager().initLoader(0, info, (LoaderCallbacks<Cursor>) this); 

}
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    String selection = "stitchlevel=?";
    String[] selectionArgs = new String[] {args.getString("Level")};
    return (Loader<Cursor>) new CursorLoader(getActivity(), STITCHES_URI,
            PROJECTION, selection, selectionArgs, null);    
}

你知道为什么从不调用这个查询方法吗?谢谢

正如@nandeesh在评论中提到的,通过在清单文件中声明您的提供者来解决这个问题

应在以下表格中填写:

<manifest>
    ...
    <application>
        <activity>...</activity>

    ...
    <provider ... />

    </application>
</manifest>

...
...
...
我能够在我的项目中重现这个问题。不过,我希望它能被检测出来,作为某种警告。但是,如果有人遇到查询还没有被调用,在我的例子中,并不是所有的ContentProvider接口方法都被调用过,这是因为我还没有在清单文件中声明提供者


我希望这会在将来帮助其他人。

您是否已在“是”中添加了您的内容提供商。我有:确保您的STITCHES\u URI与您在清单中声明的完全匹配。在我的ListFrag类中,STITCHES\u URI=content://com.MyKnitCards.project.SQLData/MyStitches_tbl,即,它引用了我的SQLITE数据库中的实际表。应该是content://com.MyKnitCards.project.StitchProvider/MyStitches_tbl. 请把你的评论写在一个答案里,这样我就可以把它标记为正确并投赞成票。我无尽的感激!
provider
不应该在
应用程序标签中吗?
<manifest>
    ...
    <application>
        <activity>...</activity>

    ...
    <provider ... />

    </application>
</manifest>