簡體   English   中英

Android Tabhost刷新

[英]Android Tabhost refresh

我有以下代碼到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)));

如何刷新每個標簽? 我想這樣做是因為我在顯示數據庫中的數據時遇到了一些問題。

坦克

我想這就是你想要的

 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_ACTIVITY_CLEAR_TOP)到您的標簽類並獲得您想要的結果

只需使用onResume函數。 對我來說工作得很好。

使用http://developer.android.com/reference/android/widget/TabHost.OnTabChangeListener.html

例如 :

  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將需要為您執行此操作。

這是一個完整的示例,它允許您攔截click事件,並更改選項卡下面的內容:

 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 );
    }
}
});
public static void chngtab(String name) {
    ((TextView)tabHost.getTabWidget().getChildAt(0)
                      .findViewById(android.R.id.title)).setText(name);
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM