java - 启动 Intent 找不到 Activity

标签 java android android-activity

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

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。显式表示直接使用类名;通常,如果您要调用自己的应用程序内的 Activity,则您打算使用显式方法,因为它要容易得多:

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

但是,如果您确实打算使用隐式过滤,那么您的 Intent 过滤器就会丢失一些东西。每个隐式 Intent 过滤器都需要类别android.intent.category.DEFAULT(除了少数异常(exception))。尝试一下,看看它是否有效:

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

建议阅读:intent filters .

关于java - 启动 Intent 找不到 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166990/

相关文章:

java - 如何将列内容设为列名 JTable - MySQL

java - 使用选择排序(不使用 Array.sort)按字母顺序对数组进行排序

android - 如何调试为什么 SSLSession.IsValid 在 Android 中失败?

android - ICS AOSP中个别应用(Phone,Contacts)的UI修改

java - API 29 java android 中不推荐使用 getBitmap

java - 为什么前端传递的日期与后端(Java)中传递的日期不一样(以毫秒为单位)

java - 一个spring事务可以使用多少个jdbc连接?

android - Flutter:如何启动和 android intent 并将数据返回到 flutter

java - Android 信息亭应用程序 - 关闭不需要的应用程序

android - 通知启动错误的 Activity