在Android中动态删除选项卡

时间:2014-01-26 20:04:06

标签: java android

我已经搜索过这个解决方案,但可以找到任何有用的东西,任何人都可以告诉我,我可以从TabHost中删除特定的选项卡/ TabSpec。我正在为每个tabSpec制作对象并将其保存在arrayList中。这是代码:

public class Main extends Activity {
    @Override
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    final TabHost tabs=(TabHost)findViewById(R.id.tabhost);
    tabs.setup();
    final ArrayList<TabHost.TabSpec> list = new ArrayList<TabHost.TabSpec>();
            TabHost.TabSpec spec= tabs.newTabSpec("buttontab");
    spec.setContent(R.id.buttontab);
    spec.setIndicator("Button");
    tabs.addTab(spec);
    list.add(spec);
    tabs.setCurrentTab(0);

    Button btn=(Button)tabs.getCurrentView().findViewById(R.id.buttontab);
            btn.setOnClickListener(new View.OnClickListener() { 
            public void onClick(View view) {
            TabHost.TabSpec spec=tabs.newTabSpec("tag1");
            spec.setContent(new TabHost.TabContentFactory() {
        public View createTabContent(String tag) {
            return(new AnalogClock(Main.this));
        }
    });
    spec.setIndicator("Clock");
    tabs.addTab(spec);
    list.add(spec);
    }
});
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用此代码实现

tabHost.getTabWidget().removeView(tabHost.getTabWidget().getChildTabViewAt(3));

要获取标签号,请使用tabHost.getCurrentTab()