2011-08-24 62 views
0

我在我的一個活動得到這個錯誤,它是使沒有任何意義,因爲我可以去Calendar活動從另一個活動,所以我知道我在清單ActivityNotFoundException意外

<activity android:name=".Calendar" android:label="Calendar"/> 

意向聲明它正確的在對話框選擇

Intent ok = new Intent(Events.this,Calendar.class); 
ok.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(ok); //ActivityNotFoundException 
finish(); 

我可以從活動ACalendar活動就好了那麼Calendar活動訪問我Events活動BU我不能從我的EventsCalendar活動?

想法爲什麼這是?

編輯:更新,錯誤

08-24 12:53:46.951: ERROR/AndroidRuntime(3045): FATAL EXCEPTION: main 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.app.notifyme/java.util.Calendar}; have you declared this activity in your AndroidManifest.xml? 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.app.Activity.startActivityForResult(Activity.java:2827) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.app.Activity.startActivity(Activity.java:2933) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at com.app.notifyme.Events$12.onClick(Events.java:318) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:873) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.widget.ListView.performItemClick(ListView.java:3513) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1849) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.os.Handler.handleCallback(Handler.java:587) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.os.Handler.dispatchMessage(Handler.java:92) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.os.Looper.loop(Looper.java:123) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at android.app.ActivityThread.main(ActivityThread.java:3839) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
08-24 12:53:46.951: ERROR/AndroidRuntime(3045):  at dalvik.system.NativeStart.main(Native Method) 
+0

你能發佈完整的錯誤嗎?有可能是活動的限定名稱,這將允許用來驗證cristian假設 – njzk2

+0

用完整的logcat錯誤 – tyczj

+0

更新,它確認您確實正在導入java.util.Calendar而不是com.app.notifyme.Calendar。用另一個替換第一個,它會起作用 – njzk2

回答

1

導入正確的包。我猜你在Events類中導入了類似java.util.Calendar的東西。

如果由於某種原因,你既需要Calendar類(你寫了一個和java.util),你必須把完整的路徑...例如:

Intent ok = new Intent(Events.this, your.pkg.example.Calendar.class); 
+0

是的,我確實有在我的events類中導入的java.util.Calendar包,那麼通過導入正確的包是什麼意思? – tyczj

+0

如果仔細觀察,將'import java.util.Calendar;'替換爲'import your.package.Calendar;' – Cristian

0

當你調用finish()的系統實際上從堆棧中移除活動。

這不允許您返回到該活動。我建議你仔細閱讀Activity Lifecycle Documentation

它應該可以幫助你找出你的問題。 :)

編輯:

你也不應該需要那個標誌。只要開始活動,系統就會處理剩下的事情。

您也無權訪問其他活動的一項活動。每項活動都是獨立的單元,不應嘗試訪問其他活動。

如果您需要在活動之間傳遞數據,請在單獨的類中使用靜態類/變量,或使用Intent.putExtra()傳遞它。

+0

,您會發現該問題不是從日曆返回,而是實際首先到達那裏。此外,完成一項活動將其從堆棧中移除,這意味着後退將帶您前一個或關閉應用程序,如果沒有。 – njzk2

+0

我認爲OP對活動應該是什麼有不正確的理解。您不應該嘗試從其他活動訪問一項活動。我認爲克里斯蒂安的解決方案可能是正確的。愚蠢的錯誤往往是最難看到的。 – Codeman

+0

我明白一項活動的作用,當我說訪問時,我的意思是我從那裏得到那項活動 – tyczj

相關問題