2011-07-04 41 views
0

我製作了一個密碼生成器應用程序,效果很好,但我想更新它以便保存密碼。我想要一個標籤,用戶可以看到生成的密碼,並且可以選擇保存其中的一個,另一個標籤包含保存的密碼。我看了一下developer.android.com教程,但我不喜歡你如何爲每個標籤製作單獨的活動。我已經使用標籤來創建使用XAML和C#的WPF應用程序,我只需要在XAML代碼中使用TabControl和TabItem。是否有可能做類似的事情?在Android中使用選項卡

回答

1

您不必爲每個選項卡創建單獨的活動。但是,您必須爲每個選項卡設置佈局。您需要TabHostTabWidgetFrameLayoutTabWidgetFrameLayout必須是TabHost的孩子,他們還必須爲其分配特定的ID。 TabWidget必須具有android.R.id.tabs的ID。 FrameLayout必須具有android.R.id.tabcontent的ID。任何你想要顯示的View s或LayoutTabHost的任何部分)必須被添加到FrameLayout。那麼你需要創建一個連接所有東西的TabSpec。它看起來像這樣(progrid)..

TabHost host = new TabHost(context); 
TabWidget widget = new TabWidget(context); 
widget.setID(android.R.id.tabs); 
FrameLayout frame = new FrameLayout(context); 
frame.setID(android.R.id.tabcontent); 
frame.addView(viewForTab1); 
frame.addView(viewForTab2); 
host.addView(widget); 
host.addView(frame); 
host.setup(); //must be called when defining a tabhost outside of a tabactivity, iirc.. 
TabSpec spec; 
do { 
    spec = host.newTabSpec(uniqueStringReference); 
    spec.setContent(viewOrLayoutForTheTab); 
    spec.otherStuffYouMightWant(); 
    host.addTab(spec); 
} while (you have tabs to add); 
+0

有幾個問題。如果我在main.xml文件中已經有一個TabHost,TabWidget和FrameLayout,我無法使用findViewById(R.id.nameOfView)而不是創建新對象嗎?然後我不認爲我必須將視圖添加到框架或小部件和框架到TabHost。另外,uniqueStringReference是什麼? –

+0

很抱歉,遲到的迴應..我相信你可以使用findViewById ..我沒有使用XML很多,個人 - 我更喜歡做我的大部分代碼,所以我可以使用值的計算關閉的維度屏幕。但是你說的話可能會起作用。我相信'uniqueStringReference'是你想要的任何東西,只要它是唯一的。這是你使用的東西(有點像一個視圖的ID)作爲標籤的參考,如果你需要的話。至少,我相信這就是它的目的。我有一陣子沒有看過API。 –

相關問題