关于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();