我是靠谱客的博主 迅速春天,最近开发中收集的这篇文章主要介绍已经弃用的TabActivity深深的伤害了我,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在仿写别人的代码的时候发现用到的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深深的伤害了我所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部