当前位置: 代码迷 >> java >> 启动意图找不到活动
  详细解决方案

启动意图找不到活动

热度:31   发布时间:2023-08-04 09:14:52.0

我的程序有一个选项卡列表,每个选项卡都包含一个人员列表。 单击某人应编辑其详细信息,但是单击某人将引发ActivityNotFoundException。 我的启动编辑活动的代码:

Intent intent = new Intent("my.package.EDIT");                // Person is both
intent.putExtra("my.package.PERSON", (Parcelable) myPerson);  // Parcelable and
GroupArrayAdapter.this.getContext().startActivity(intent);    // Serializable

AndroidManifest.xml的相关部分:

<activity android:name="EditActivity">
  <intent-filter>
    <action android:name="my.package.EDIT" />
  </intent-filter>
</activity>

这是怎么回事?

有两种方法可以显式或隐式地启动活动。 明确表示您直接使用类名; 通常,如果您要在自己的应用程序内调用Activity,则要使用的是显式方法,因为它要容易得多:

Intent intent = new Intent(context, EditActivity.class);
context.startActivity(intent);

但是,如果您确实要使用隐式过滤,则您的意图过滤器缺少某些内容。 每个隐式意图过滤器都需要类别android.intent.category.DEFAULT (少数例外)。 试试看,看看是否可行:

<activity android:name="EditActivity">
  <intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <action android:name="my.package.EDIT" />
  </intent-filter>
</activity>

建议阅读: 。

实例化适配器时,请传递来自调用活动的上下文。 然后在您的适配器中使用context.startActivity(...);

  相关解决方案