2012-01-05 37 views
1

我在TabHost裏面看到大量的Dialog,但不是相反。那麼如何在Dialog中使用TabHost佈局。如果可能的話,我也不想爲每個Tab使用Intent,因爲它對於我想要做的事似乎很混亂。如何在對話框中使用TabHost?

基本上我想要啓動一個Dialog,我用它作爲菜單,我想有一個TabHost來瀏覽所有菜單選項。有很多他們:)現在我只是將XML佈局設置爲Dialog,但我很困惑如何在該對話框中設置TabHost

回答

2

所以我做了一個HostTab佈局,並命名爲每個線性/相對佈局,並宣佈我創建從他們被宣佈像這樣的XML文件中使用的線性/相對佈局的每個選項卡:

dialog.setContentView(R.layout.maintabmenu); 
TabHost tabs = (TabHost) dialog.findViewById(R.id.my_tabhost); 
tabs.setup(); 
tabs.setCurrentTab(0); 

TabSpec tspec11 = tabs.newTabSpec("Tab1"); 
tspec11.setIndicator("NEWTAB"); 

tspec11.setContent(R.id.ScrollView01); 
tabs.addTab(tspec11); 

TabSpec tspec2 = tabs.newTabSpec("Tab2"); 
tspec2.setIndicator("NEWTAB"); 

tspec2.setContent(R.id.ScrollView02); 
tabs.addTab(tspec2); 

我還有所有的按鈕和其他意見與每個聲明的內部佈局,使一切工作就像我想:)耶,我笑

但由於@ R.daneel。 oliva試圖跳進:)

+0

謝謝你爲我節省了很多時間。現在我不必創建5個活動和XML文件。 – userman 2013-01-13 07:32:47

+0

我們可以看到xml嗎? – ChuckKelly 2013-03-28 06:50:14

+0

不幸的是,我不再能夠訪問來自該來源的項目文件,但是它的結構方式是我基本上採用了傳統上位於不同文件中的佈局,並將它們放入一個大文件中,這樣當我設置時就已經充氣了內容視圖。 – 2013-03-28 18:16:31

2

我想指出的另一種方法,

,而不是使一個複雜的對話框,難以維持,甚至用,爲什麼不通過使用下面的代碼在對話框模式打開一個單獨的活動在清單文件

android:theme="@android:style/Theme.Dialog" 

這種方式可以的hve所有複雜&能力在對話活動的活動標籤。

我希望它有助於..

+0

但是,通過創建一個新的活動來啓動一個菜單似乎比設置了tabhost的簡單對話更加複雜和複雜。我不需要一個單獨的活動來運行一個簡單的菜單.....這似乎真的矯枉過正。我正在努力獲得它,我想如何我只是有一個奇怪的空指針出於某種原因在我的代碼中的一行。 – 2012-01-05 04:06:46

+1

好的,您可以發佈一些代碼並提及代碼引發異常的位置以及哪種異常。 – 2012-01-05 04:13:12

+0

嘿謝謝你的幫助,但我只是想通了....我沒有調用tabs.setup();然後在我的代碼中進一步下來,我有一個Textview,我不再使用,這是導致錯誤。它沒有顯示自己,直到我意識到我沒有使用tabs.setup(); 。 – 2012-01-05 04:24:34