Java 启动意图找不到活动

Java 启动意图找不到活动,java,android,android-activity,Java,Android,Android Activity,我的程序有一个选项卡列表,每个选项卡都包含一个人员列表。单击某人应编辑其详细信息,但单击某人会引发ActivityNotFoundException。启动编辑活动的我的代码: Intent intent = new Intent("my.package.EDIT"); // Person is both intent.putExtra("my.package.PERSON", (Parcelable) myPerson); // Parcelable and Gr

我的程序有一个选项卡列表,每个选项卡都包含一个人员列表。单击某人应编辑其详细信息,但单击某人会引发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>


发生了什么事?

有两种方式启动活动,显式或隐式。显式表示直接使用类名;通常,如果您正在调用自己的应用程序中的某个活动,您要使用的是显式方法,因为它更容易:

Intent intent = new Intent(context, EditActivity.class);
context.startActivity(intent);
然而,如果您真的打算使用隐式过滤,那么您的意图过滤缺少一些东西。每个隐式意图过滤器都需要category
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(…)

你为什么不这么做呢?开始触觉(意图)?你能发布日志吗?嗯,这正好是一个监听器。在这里,logcat中没有什么有用的东西。我在ArrayAdapter中使用OnClickListener,而不是在我的ListActivity中使用onListItemClicked(),因为从ListActivity很难找到myPerson。