标签:
自己在使用TabHost的过程中由于时间久和自己就理解不深的缘故,在获取到tabHost后进行addTab操作时经常遇到空指针异常的缘故,在这里做一个总结
1.当我们直接让Activity继承自TabActivty时:
2.当我们的activity不直接继承自TabActivity时,也不用intent填充fragment时
在这种情况下并不能直接在addTab的时候将其他的activity嵌入到当前的tab页面中,系统还是提示空指针异常比如:
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("第一").setContent(new Intent(this,Act1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("第二").setContent(new Intent(this,Act2.class)));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("第三").setContent(new Intent(this,Act3.class)));
但是还会提出一个建议:
Did you forget to call ‘public void setup(LocalActivityManager activityGroup)‘?
这告诉我们要调用tabHost的有参方法。但是该方法的参数只有通过
getLocalActivityManager()函数得到,该函数却是ActivityGroup才有的,所以请看第三条
3.当我们的activity不直接继承自TabActivity时,需要用intent填充fragment时
所以综合来看,如果要使用tabHost,那么直接继承自TabActivity是最方便的方法,不过需要在layout布局文件中指定tabHost控件的ID为android:id/tabhost(注意大小写),并且在activity中直接通过getTabHost()方法获取到tabHost对象
标签:
原文地址:http://blog.csdn.net/a591193965/article/details/51367082