我制作了一个运行良好的密码生成器应用程序,但我想更新它以便它可以保存密码。我希望有一个选项卡,用户可以看到生成的密码,并可以选择保存其中一个密码,另一个选项卡包含已保存的密码。我查看了developer.android.com教程,但我不喜欢你必须为每个标签创建一个单独的活动。我使用了制表符来创建使用XAML和C#的WPF应用程序,我只需要在XAML代码中使用TabControl和TabItem。是否可以做类似的事情?
答案 0 :(得分:1)
您不必为每个标签创建单独的活动。但是,您必须为每个标签设置一个布局。您需要TabHost
,TabWidget
和FrameLayout
。 TabWidget
和FrameLayout
必须是TabHost
的子级,并且还必须为其分配特定的ID。 TabWidget
必须具有android.R.id.tabs
的ID。 FrameLayout
必须具有android.R.id.tabcontent
的ID。您希望显示的任何View
或Layout
(TabHost
的任何部分)都必须添加到FrameLayout
。然后,您需要创建一个将所有内容链接在一起的TabSpec
。它看起来像这样(进步)..
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);