概述
在仿写别人的代码的时候发现用到的TabActivity被自动化掉了,仔细一看已经被弃用,deprecated了。
所以我就上网搜啊搜。看别人的博文。这位大神蛙齋所写如下
【
1. 把TabActivity改成Activity(廢話 …)
public
class
MainActivity
extends
TabActivity
|
public
class
MainActivity
extends
Activity
|
2. 取得TabHost物件,這裡不能透過像TabActivity一樣直接用getTabHost();。
TabHost tabHost = getTabHost();
|
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
|
3. 增加一個LocalActivityManager物件。這幾行是一定不能少,少了對大家都不好DDMS會一直報出大量的錯誤訊息。
1
2
3
|
LocalActivityManager lam =
new
LocalActivityManager(MainActivity.
this
,
false
);
lam.dispatchCreate(savedInstanceState);
mHost.setup(lam);
|
4. 最後最重要的重頭戲部份Override onPause及onResume(這個應該是有看過Source的人才知道的吧!小蛙太弱了><),少了這邊的設定,就算上面全部都對,到這邊還是會狂錯(感謝Stack Overflow的dcanh121以及CJ Villa)。
1
2
3
4
5
6
7
8
9
10
|
@Override
protected
void
onPause() {
lam.dispatchPause(isFinishing());
super
.onPause();
}
@Override
protected
void
onResume() {
lam.dispatchResume();
super
.onResume();
}
|
如果有任何一個步驟漏掉,會得到以下錯誤。
Caused by: java.lang.IllegalStateException: Activities can't be added until the containing group has been created.
|
到這邊就已經完成囉!其他tabHost.addTab的使用方式一模一樣。接下來會再另一篇說明怎麼在TabHost裡面切換多個Activity,並且讓每個頁籤中的Back Stack可以獨立運作。
】
但是当我百写不得解决的时候,我放弃了。
我直接不管不顾的直接向下写,知道最后。
然后我很惊奇的发现最后无关大局,很顺利的运行了。
所以我得出了结论,当你看不懂甚至怀疑别人所写的代码的时候,别怀疑,没资格,到最后再试一试吧。android里的各个控件联系太深了。
最后
以上就是迅速春天为你收集整理的已经弃用的TabActivity深深的伤害了我的全部内容,希望文章能够帮你解决已经弃用的TabActivity深深的伤害了我所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复