2014-03-30 55 views
-1

我在Eclipse中有2個項目。當我點擊project1中的一個按鈕時,我希望它從project2啓動一個活動。 我該怎麼做? 我嘗試下面的代碼Android從不同的項目開始活動

Intent intent = new Intent(this,com.project2.tp02.MainActivity.class); 
intent.setClassName("com.project2.tp02", "com.project2.tp02.MainActivity.class"); 
startActivity(intent); 

我得到一個錯誤信息,告訴第一個應用程序停止。我怎樣才能正確地啓動它沒有這樣的錯誤?

在此先感謝任何幫手。


我得到了它工作中使用此:

Intent intent = new Intent(); 
String pkg ="com.project2.tp02"; 
String clazz =pkg + ".MainActivity"; 
intent.setComponent(new ComponentName(pkg, clazz)); 
startActivity(intent); 

我不明白爲什麼它的工作方式,而不是以前的一個,如果有人可以解釋我會心存感激,但無論如何,我得到了我問題解決了這種方式。

+0

請提供例外的詳細信息,因爲這裏沒有足夠的信息來確定問題的原因。 –

回答

0

這是調用另一個項目中的活動的工作代碼。

Intent intent = new Intent(); 
intent.setComponent(new ComponentName("com.my.package", "com.my.package.MyClass")); 
startActivity(intent); 

我想你的第一個代碼沒有工作,因爲你提供你當前活動的調用的活動的情況下它是在另一個應用程序。

+0

我認爲您是對的,也許第一種方式的問題來自於上下文... 無論如何,問題解決了,我怎麼能標記它解決?只是通過檢查你的答案附近?我找不到任何按鈕解決像其他論壇。 – JustGreat

+0

是的,綠色的複選標記標記爲已解決...點擊向上箭頭以回答我的問題也很好,可以將此答案標記爲有用。 –

0
  <intent-filter> 
       <action android:name="com.project2.tp02.MainActivity" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

在第一個活動的清單中添加上面幾行可能會解決您的問題。

+0

檢查了更多:http://hmkcode.com/android-start-another-activity-of-another-application/ – Swayam

+0

感謝您的答案,但它沒有工作:( 第一次應用程序崩潰,我得到一個錯誤(不幸的應用程序TP02停止)... – JustGreat

0

有趣的是,錯誤消息正是在說什麼......您需要Swayam針對您要調用的活動所描述的意圖過濾器。

嘗試 new Intent(「com.project2.tp02.MainActivity」); 來獲得意圖,而不是設置類名稱。

+0

非常感謝您的幫助我解決了上述問題,但無論如何我非常感謝您努力幫助 – JustGreat