[問題] 關於TabHost幾個問題

看板AndroidDev作者 (Ivan)時間13年前 (2012/08/07 16:20), 編輯推噓2(2016)
留言18則, 2人參與, 最新討論串1/1
我製作了一個tabhost,有四個tab選項連結到各自的Activity(第一層) 該Activity(第一層)還有別的操作會連結到令一個Activity(第二層) 而第二層的Activity並不在tab的選項內,這時我做的tab就會消失了 有點難表達,講的簡單一點就是我希望我做的tab 可以在這個App裡面所有的Activity中都顯示出來,我該怎麼做呢? 表達的很爛,附上一些code來描述: tabhost: public class AppTabhost extends TabActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /**find tab host**/ TabHost tabHost = getTabHost(); /**add tabs**/ //tab 1 tabHost.addTab(tabHost .newTabSpec("tab1") .setIndicator("tab1") //第一層:Activity A .setContent(new Intent(AppTabhost.this, A.class))); //tab 2 tabHost.addTab(tabHost .newTabSpec("tab2") .setIndicator("tab2") //第一層:Activity B .setContent(new Intent(AppTabhost.this, B.class))); } } --------------------------------------------------------------------- Activity A public A extends....{ public void onCreate(...) { .... Button btn = (Button) findViewById(...); btn.setOnClickListener(new View.OnClickListener() { Intent intent = new Intent(); //第二層:Activity C intent.setClass(this, C.class); startActivity(intent); }); } } 這時當我點擊按鈕連到Activity C時 tab就會不見了,有什麼方法可以讓tab顯示在所有的Activity中呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.34.138.203

08/07 20:20, , 1F
你的意思是說TabHost的分頁內 想要進行畫面的轉跳
08/07 20:20, 1F

08/07 20:20, , 2F
然後形成很多Activity都在TabHost內跳頁
08/07 20:20, 2F

08/07 20:21, , 3F
那你必須找關鍵字 ActivityGroup來看看
08/07 20:21, 3F

08/07 20:21, , 4F
不過在3.0之後 這種方法已經被棄用了
08/07 20:21, 4F

08/07 20:21, , 5F
原因出在管理上非常麻煩 你會遇到back以及其他的問題
08/07 20:21, 5F

08/07 20:22, , 6F
在3.0之後是用Fragment來取代這樣的一種模式
08/07 20:22, 6F

08/07 20:23, , 7F
官網有TabHost+FragmentActivity 不過它只有第一層
08/07 20:23, 7F

08/07 20:23, , 8F
不過概念相同 如果你想要跳到第二層 可參考它的
08/07 20:23, 8F

08/07 20:23, , 9F
TabManager的寫法
08/07 20:23, 9F

08/07 23:57, , 10F
我也看到Fragment的用法了,但是這樣就不能支援3.0以下
08/07 23:57, 10F

08/07 23:58, , 11F
版本,另外問問ActionBar的作用跟TabHost有甚麼區別?
08/07 23:58, 11F

08/08 11:30, , 12F
版本可以向下相容啊
08/08 11:30, 12F

08/08 11:32, , 13F
兩個是不一樣的東西 一個是標題欄位 一個是畫面片段
08/08 11:32, 13F

08/08 18:32, , 14F
因為必須在舊的code上面加上tabhost(SDK2.2)所以可能還
08/08 18:32, 14F

08/08 18:33, , 15F
是要用到ActivityGroup了,謝謝G大的回覆!
08/08 18:33, 15F

08/08 19:58, , 16F
不懂 ActivityGroup明明有問題 堅持要用的原因是?
08/08 19:58, 16F

08/08 19:59, , 17F
不是說Fragment可以用lib的方式來向下相容了嗎?
08/08 19:59, 17F

08/08 21:36, , 18F
好的,我試著用Fragment做做看好了
08/08 21:36, 18F
文章代碼(AID): #1G8C_BG2 (AndroidDev)
文章代碼(AID): #1G8C_BG2 (AndroidDev)