TabHost Tab的添加和删除

TabHost 添加Tab项:

tabhost = this.getTabHost();

		TabSpec tabSpec = tabhost.newTabSpec("news");
		tabSpec.setIndicator("新闻");
		tabSpec.setContent(new Intent(this, NewsActivity.class));
		tabhost.addTab(tabSpec);

		TabSpec tabSpec2 = tabhost.newTabSpec("fun");
		tabSpec2.setIndicator("娱乐");
		tabSpec2.setContent(new Intent(this,FunActivity.class));
		tabhost.addTab(tabSpec2);

		TabSpec tabSpec3 = tabhost.newTabSpec("sport");
		tabSpec3.setIndicator("体育");
		tabSpec3.setContent(new Intent(this,SportsActivity.class));
		tabhost.addTab(tabSpec3);

		TabSpec tabSpec4 = tabhost.newTabSpec("setting");
		tabSpec4.setIndicator("设置");
		tabSpec4.setContent(new Intent(this, SettingActivity.class));
		tabhost.addTab(tabSpec4);

TabHost删除Tab项

	mTabHost.getTabWidget().removeViewAt(mTabHost.getCurrentTab());

这样删除会有问题。

只能通过删除所有Tab项然后再依次添加。需要注意在调用clearAllTabs()方法之前,需要设置当前显示的tab,即setCurrentTab(0),否则出现空指针问题。

完整代码如下:

tabhost.setCurrentTab(0);
				tabhost.clearAllTabs();
			
				TabSpec tabSpec = tabhost.newTabSpec("news");
				tabSpec.setIndicator("新闻");
				tabSpec.setContent(new Intent(this,
						NewsActivity.class));
				tabhost.addTab(tabSpec);

				TabSpec tabSpec2 = tabhost.newTabSpec("fun");
				tabSpec2.setIndicator("娱乐");
				tabSpec2.setContent(new Intent(this,
						FunActivity.class));
				tabhost.addTab(tabSpec2);

				TabSpec tabSpec3 = tabhost.newTabSpec("sport");
				tabSpec3.setIndicator("体育");
				tabSpec3.setContent(new Intent(this,
						SportActivity.class));
				tabhost.addTab(tabSpec3);

				TabSpec tabSpec4 = tabhost.newTabSpec("setting");
				tabSpec4.setIndicator("设置");
				tabSpec4.setContent(new Intent(EarthActivity.this,
						SettingActivity.class));
				tabhost.addTab(tabSpec4);

				tabhost.setCurrentTab(2);



你可能感兴趣的:(android,tabhost,Tabspec)