[英]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.