我想動態的啟動一個新的 intent,因此 setClassName 是一個很好的選擇。
首先,在Manifest中定義3個activity:
<activity android:name="com.example.pkg2.Act" />
<activity android:name="com.example.pkg1.Act1" />
<activity android:name="com.example.pkg1.Act2" />
從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);
但是獲得下面的異常:
Unable to find explicit activity class {com.example.pkg2.Act/com.example.pkg1.Act1}; have you declared this activity in your AndroidManifest.xml?
好像只能使用 setClassName 來動態的啟動新的 Activity,還必須的在相同的包中。
如何處理這個問題?
intent.setClassName(Act.this, Act1.class);