Java Android Tabhost刷新
我有以下代码来支持tabhostJava Android Tabhost刷新,java,android,android-tabhost,Java,Android,Android Tabhost,我有以下代码来支持tabhost tabHost.addTab(tabHost.newTabSpec("tab1") .setIndicator("First Text") .setContent(new Intent(this, class1.class))); tabHost.addTab(tabHost.newTabSpec("tab2") .setIndicator("Second Text")
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("First Text")
.setContent(new Intent(this, class1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("Second Text")
.setContent(new Intent(this, class2.class)));
如何刷新每个选项卡?我想这样做是因为我在显示数据库中的数据时遇到了一些问题
储罐的使用
例如:
mTabHost.setOnTabChangedListener(new OnTabChangeListener(){
@Override
public void onTabChanged(String tabId) {
if(TAB_1.equals(tabId)) {
//Do first activity task
}
if(TAB_2.equals(tabId)) {
//Do the other task...so on
}
}});
编辑:
如果希望看到某个特定选项卡被单击,则需要将侦听器添加到选项卡本身,而不是TabHost
选项卡实现中的视图层次结构是:
TabHost
TabWidget
(tab)
(tab)
FrameLayout
在运行时通过调用tabHost.addTab(tabHost.newTabSpec(“”))添加选项卡
然后,您可以通过调用:getTabWidget().getChildAt(4)获得单个选项卡的句柄
本质上,您正在将OnClickListener添加到TabWidget的子级。你现在可以点击你的个人标签了。但是,这将覆盖在单击选项卡时更改内容的默认行为。因此,为了让您的内容改变,您的OnClickListener将需要为您这样做
下面是一个完整的示例,它允许您截取单击事件,并更改选项卡下方的内容:
final String myTabTag = "My Tab";
final int myTabIndex = 3;
getTabHost().addTab( getTabHost().newTabSpec(myTabTag) );
getTabWidget().getChildAt(myTabIndex).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (getTabHost().getCurrentTabTag().equals(myTabTag)) {
getTabHost().setCurrentTab(myTabIndex );
}
}
});
我想这就是你想要的
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("First Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("Second Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class2.class)));
只需将
.addFlags(Intent.FLAG\u ACTIVITY\u CLEAR\u TOP)
添加到tab类中,即可获得所需的结果只需使用onResume
功能即可。对于我来说,这一切都很好。请提供问题的详细说明。当你们想刷新标签时,比如说,当用户点击标签时,在特定的时间间隔?是的。单击每个选项卡时,我希望刷新活动选项卡1和选项卡2是什么?一节课?我在“.addFlags”上得到了和erro。你能告诉我为什么吗?嗨,我怎么能给这个添加标志?mtabAdapter.addTab(mTabHost.newTabSpec(“tab1”).setIndicator(“tab1”),FragmentStackSupport.TABcontent.class,null)@xDragonZ必须在Intent而不是TabSpec上调用addFlags方法
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("First Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class1.class)));
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("Second Text")
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
.setContent(new Intent(this, class2.class)));