2 つのアクティビティで構成される非常に単純なアプリケーション (教科書の例) があります。最初のアクティビティUsingIntentActivity
にはボタンがあります。SecondActivity
このボタンをクリックすると、画面にテキストを表示する2 番目のアクティビティが呼び出される必要があります。
私はこれを使用して達成することができますstartActivity(new Intent(this, SecondActivity.class));
ただし、この例に出会った教科書では、同じ方法の別の形式が使用されています。
startActivity(new Intent("net.dreamingpixel.SecondActivity"));
そしてManifest File
、一致するカスタムインテントが作成されます(私が理解しているように):
<activity
android:name=".UsingIntentActivity"
android:label="@string/title_activity_using_intent" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:label="Second Activity" >
<intent-filter>
<action android:name="net.dreamingpixel.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
したがって、intent-filter があり、そのカテゴリは に設定されていDEFAULT
ます。しかし、このようにアプリを実行しようとして、アプリのボタンをクリックするとUsingIntentActivity
クラッシュします。log cat には、次のメッセージが表示されます。
FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute the method of the activity
そして、この記事の最初に書いた startActivity メソッドの呼び出しを指しています。
誰かが同様の問題を抱えていましたか?私はどこかで間違いを犯しましたか?
Manifest
更新: また、2 番目のアクティビティ タグを開いた行のファイルに警告があることに気付きました。それは言う:エクスポートされた活動は許可を必要としません
たぶん、この警告は私の問題で何かをしなければなりません..