我有一個非常簡單的應用程序(一個教科書的例子),它由2個活動組成:第一個活動UsingIntentActivity
有一個按鈕。點擊此按鈕後,必須導致第二項活動SecondActivity
,這將在屏幕上顯示文字。如何使用自定義意圖開始活動?
我可以使用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" />
<categoty android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
因此,有意向過濾器和類別設置爲DEFAULT
。但是當我嘗試像這樣運行應用程序並單擊UsingIntentActivity
的應用程序崩潰按鈕。在日誌中的貓,我可以看到以下消息:
FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute the method of the activity
然後它指向startActivity的方法,我在這篇文章的開頭寫的召喚。
有沒有人有類似的問題?我在某個地方犯了錯嗎?
更新:另外我注意到在Manifest
文件中有一條警告,我打開第二個活動標籤。它說:導出活動並不需要許可
也許這個警告必須做與我的問題東西..
你命名你的包「net.dreamingpixel」? – 2012-07-15 09:35:10
包名稱爲「net.dreamingpixel.usingintent」。那是錯的嗎? – 2012-07-15 09:40:00
是的,你應該把它命名爲「net.dreamingpixel」或者將你的調用改爲'startActivity(new Intent(「net.dreamingpixel.usingintent.SecondActivity」));' – 2012-07-15 10:57:01