*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity);
}
}可见TestActivity仅仅是调用setContentView来显示test_activity.
xml中的内容而已。对于test_activity.xml及本例中所用到其他xml文件这里不作多余说明,读者练习时可自行参考本书所附光盘中的源代码。如果我们仅仅是做上面的一些
工作,还不能达到利用SimpleIntentTest启动TestActivity的目的。事实上,这样做会出现下面的Exception,导致程序退出。以下是利用logcat工具记录的log信息(省略了后半部分):I/ActivityManager(569):Displayedactivitycom.tope.samples/.SimpleIntentTest:3018ms
I/ActivityManager(569):Startingactivity:Intent{comp={com.tope.samples/com.tope.samples.TestActivity}}
D/AndroidRuntime(932):ShuttingdownVM
W/dalvikvm(932):threadid=3:threadexitingwithuncaughtexception(group=0x4000fe70)
E/AndroidRuntime(932):Uncaughthandler:threadmainexitingduetouncaughtexception
E/AndroidRuntime(932):android.content.ActivityNotFoundException:Unabletofindexplicitactivityclass{com.tope.samples/com.tope.samples.TestActivity};haveyoudeclaredthisactivityinyourAndroidManifest.xml?
E/AndroidRuntime(932):ava:1480)
atandroid.app.Instrumentation.checkStartActivityResult(Instrumentation.j
E/AndroidRuntime(932):4)
atandroid.app.Instrumentation.execStartActivity(Instrumentation.java:145
E/AndroidRuntime(932):
atandroid.app.Activity.startActivityForResult(Activity.java:2656)
E/AndroidRuntime(932):
atandroid.app.Activity.startActivity(Activity.java:2700)
E/AndroidRuntime(932):
atcom.tope.samples.SimpleIntentTest.onClick(SimpleIntentTest.java:24)
…从这些log中我们可以看到点击按钮后startActivity的调用过程,主要的原因是:“android.content.ActivityNotFoundException:Unabletofindexplicitactivityclass{com.tope.samples/com.tope.samples.TestActivity};
haveyoudeclaredthisactivityinyourAndroidManifest.xml?”从这些log我们可以看到原因是找不到TestActivity这个Activity,并且log中还给出了提示:你是否在AndroidManifest.xml中声明了这个Activity?解决
问题的方法也就是按照提示在AndroidManifest.xml中增加TestActivity的声明