關於Tabhost裏面的內容更新問題今天遇到一個問題,就是有兩個Tabhost,大概意思是第一個Tabhost中收藏的聯繫人會在第二個Tabhost中顯示,但是如果按在oncreate中編寫兩個Tab後三天卻不能自動更新,必須重啓模擬器纔可以,後來經過自己查閱和請教,解決了。
第一種解決方案:複寫onresume方法,然後將之前在oncreate中寫的方法全放在onresume中,使得每更換一次TabHost將重新喚醒一次。
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
@Override
protected void onResume() {
super.onResume();
// 步驟2:創建一個選項卡容器
TabHost tabHost = this.getTabHost();
// 步驟3:創建選項卡
Intent intent = new Intent().setClass(this, UserListActivity.class);
TabSpec tab01 = tabHost
.newTabSpec("tab01")
.setIndicator(
"聯繫人",
this.getResources().getDrawable(
R.drawable.lianxiren))
.setContent(intent);
// -------------------------------------------------------------------------
intent = new Intent().setClass(this, StoreUserActivity.class);
TabSpec tab02 = tabHost
.newTabSpec("tab02")
.setIndicator(
"收藏",
this.getResources().getDrawable(
android.R.drawable.btn_star_big_on))
.setContent(intent);
// 步驟4:將創建好的卡片放入到卡片選項容器中
tabHost.addTab(tab01);
tabHost.addTab(tab02);
}
第二種解決方案:
在oncreate中寫
mlocalActivityManager = new LocalActivityManager(MainActivity.this,false);
mlocalActivityManager.dispatchCreate(savedInstanceState);
tabHost.setup(mlocalActivityManager);
後在onresume中寫
mlocalActivityManager.dispatchResume();