Chcę dynamicznie rozpocząć nowe intencje. Dlatego wydaje się, że najlepszym wyborem jest setClassName
.Nie można rozpocząć nowej intencji przez setClassName z innym pakietem w Androidzie
Po pierwsze, określenie 3 aktywność w jawnym
<activity android:name="com.example.pkg2.Act" />
<activity android:name="com.example.pkg1.Act1" />
<activity android:name="com.example.pkg1.Act2" />
Od com.example.pkg2.Act
:
Intent intent = new Intent();
if(index == 0) intent.setClassName(Act.this, "com.example.pkg1.Act1");
else intent.setClassName(Act.this, "com.example.pkg1.Act2");
startActivity(intent);
I dostanie ten wyjątek:
Unable to find explicit activity class {com.example.pkg2.Act/com.example.pkg1.Act1}; have you declared this activity in your AndroidManifest.xml?
Wygląda na to, możemy użyć tylko setClassName
dynamicznie rozpocząć nową aktywność, ale w ramach tego samego pakietu.
Jakiś pomysł na rozwiązanie tego problemu? Cała pomoc jest doceniana.
' ' zmian ACT1 do ACT2 zostały uznane ACT1 dwa czasy? –
Dzięki @imrankhan To moja wina, gdy kopiuj-wklej: p – anticafe
jest ok, zobacz moją zaktualizowaną odpowiedź. –