ActivityNotFoundException

ActivityNotFoundException

当我使用应用程序时,该应用程序在运行时引起错误,这是意图上的错误,但是从我所看到的看,代码中没有错误,它说:

    android.content.ActivityNotFoundException: Unable to find explicit activity class .... have you declared this activity in your AndroidManifest.xml?


但是,由于它是一个片段,因此无需在清单中说明,我在它从中产生出来的清单中已经说明了活动。

        @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {   //I
    Intent i = new Intent(ViewAllRecipe.this.getActivity(), EditRecipesFragment.class);
    HashMap<String, String> map = (HashMap) parent.getItemAtPosition(position);
    String RecId = map.get(Config.TAG_ID).toString();
    i.putExtra(Config.REC_ID, RecId);
    getActivity().startActivity(i);
}


错误来自:

    getActivity().startActivity(i);


它正在膨胀的活动是,其他片段也仅在这一片段上工作良好;

       <activity
        android:name=".NavigationActivity"
        android:label="@string/app_name" >
    </activity>


谢谢!

最佳答案

您可以使用此方法从其他活动/片段中调用一个活动

Intent intent = new Intent(context, YourNewActivity.class);


上面的构造函数将使用下面说明的两个参数。

1)。 Context作为其第一个参数(之所以使用它,是因为Activity类是Context的子类)

2)。系统应将Class传递到的应用程序组件的Intent(在这种情况下,应启动的活动)

但是在您的情况下,第二个参数是Fragment,它不依赖于上述语法,而获得ActivityNotFoundException的原因是因为在此行中

Intent i = new Intent(ViewAllRecipe.this.getActivity(), EditRecipesFragment.class);


JVM期望第二个参数是Activity类,当在manifest中找不到任何此类时,它将抛出ActivityNotFoundException

要从Fragment调用Activity,您必须使用FragmentTransactions

10-08 12:20