Java Uri导致的CursorIndexOutOfBoundsException

Java Uri导致的CursorIndexOutOfBoundsException,java,android,cursor,uri,android-contentprovider,Java,Android,Cursor,Uri,Android Contentprovider,这是我的日志: 08-25 22:35:27.989: ERROR/AndroidRuntime(327): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3 下面是onCreate(Bundle)方法,我从中获取光标: private static final String[] PROJECTION = { Formulas._ID,

这是我的日志:

08-25 22:35:27.989: ERROR/AndroidRuntime(327): Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3 
下面是
onCreate(Bundle)
方法,我从中获取光标:

private static final String[] PROJECTION = { 
    Formulas._ID, Formulas.TITLE, Formulas.FORMULA 
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Uri uri = getIntent().getData();

    Cursor formulaCursor = managedQuery(uri, PROJECTION, null, null, null);

    String formulaName = formulaCursor.getString(formulaCursor.getColumnIndex(Formulas.TITLE));
    String formula = formulaCursor.getString(formulaCursor.getColumnIndex(Formulas.FORMULA));

    ((TextView) findViewById(R.id.formula)).setText(formula);
    ((TextView) findViewById(R.id.formula_name)).setText(formulaName);
}
这是我真正开始活动的地方:

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Uri formula = ContentUris.withAppendedId(getIntent().getData(), id);
    startActivity(new Intent(Intent.ACTION_VIEW, formula));
}
public void onItemClick(AdapterView父视图、视图视图、整型位置、长id){
Uri公式=ContentUris.withAppendedId(getIntent().getData(),id);
startActivity(新意图(Intent.ACTION_视图,公式));
}

我已经有了自己的内容提供商,并且设置正确。

您没有执行
formulaCursor.moveToFirst()