【发布时间】:2012-04-03 19:05:40
【问题描述】:
我是 android 框架的新手,我想知道是否可以从 TabHost 调用相同的活动?我有 3 个选项卡,每个选项卡都填充一个列表,但值不同。我想过滤选项卡中的列表。每个选项卡的数据都是从列表中构建的,这就是为什么我不想制作 3 个不同的 Activity。 TabHost 和 TabActivity 类可以吗?
提前致谢!
兄弟,彼得
【问题讨论】:
我是 android 框架的新手,我想知道是否可以从 TabHost 调用相同的活动?我有 3 个选项卡,每个选项卡都填充一个列表,但值不同。我想过滤选项卡中的列表。每个选项卡的数据都是从列表中构建的,这就是为什么我不想制作 3 个不同的 Activity。 TabHost 和 TabActivity 类可以吗?
提前致谢!
兄弟,彼得
【问题讨论】:
Example of using Android tabs with Views instead of Activities?
一种方法是创建三个选项卡,每个选项卡都使用相同的内容布局(带有列表视图的东西),然后每当用户更改选项卡时(注册 OnTabChangedListener)。清除当前列表视图并使用新数据重新加载它。 OnTabChangedListener 还会告诉您它切换到了哪个选项卡。
【讨论】:
您应该能够为每个选项卡指定相同的活动。为了让它过滤,我只需在意图上发送一个额外的值。
类似这样的:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_host_layout);
TabHost tabHost = getTabHost();
Intent intent1 = new Intent(this, MyActivity.class);
intent1.putExtra("filter", 1);
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("Tab1")
.setContent(intent1));
Intent intent2 = new Intent(this, MyActivity.class);
intent2.putExtra("filter", 2);
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("Tab2")
.setContent(intent2));
}
【讨论】: