Java Android Tabhost刷新

Java 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

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)));