2012-03-17 3 views
1

У меня есть два вида деятельности из двух разных пакетов, я хотел бы назвать деятельность в package2 из упаковке1 Для этого я использовал следующее,Вызывающая Деятельность из другой упаковки

Intent intentDeviceTest = new Intent();     
intentDeviceTest.setComponent(new ComponentName("chat.client.gui","chat.client.gui.MainActivity")); 
startActivity(intentDeviceTest); 

Это показывает ошибку, что деятельность не найден, добавьте это в манифест.

Но он отлично работает, когда я называю его таким образом,

Intent intentDeviceTest = new Intent(HomeActivity.this,MainActivity.class);  
startActivity(intentDeviceTest); 

Что ошибка в приведенном выше методе!

+1

увидеть это [запуск мероприятий из другой упаковки] (http://stackoverflow.com/questions/ 2741857/launch-activities-from-different-package) –

ответ

0

Я всегда использую вторую форму в своих приложениях. Это проще, яснее и короче.

// Assumes that this is done from within an Activity 
Intent intent = new Intent(this, AnotherActivity.class); 
startActivity(intent); 

Но я думаю, что проблема с первой формой заключается в том, что вы указали пакет снова во втором параметре. Вам нужно только имя класса:

Intent intentDeviceTest = new Intent();     
intentDeviceTest.setComponent(new ComponentName("chat.client.gui", "MainActivity")); 
startActivity(intentDeviceTest); 

Посмотрите на первый конструктор в этом для справки: http://developer.android.com/reference/android/content/ComponentName.html

+0

Даже я делаю первый, который вы упомянули, но эти действия находятся в разных пакетах, поэтому ... –