在Android应用程序中按需创建选项卡内容

时间:2011-05-09 17:20:52

标签: android android-tabhost

我必须使用标签,新标识和报告。在REPORTS选项卡中,我正在创建一个动态创建的列表视图。现在从数据库中获取列表视图列表项。因此,每次加载REPORTS选项卡时,如果列表项发生更改,则必须从数据库中获取列表视图列表项。如果我将所有这些东西都放在了“报告”的onCreate选项卡中,那么一切都很完美。但是,如果我切换到另一个选项卡并切换回REPORTS选项卡,则会填充列表视图,但不会反映列表项中数据库中所做的更改。每当我回到REPORTS选项卡时,我需要从数据库中获取当前数据并显示在列表视图中。

所以问题是因为我正在onCreate中填充listview,这只发生一次。在网上浏览后,我找到了TabContentFactory()的东西。好吧,我认为这可以解决我的问题。这就是我做的,

TabHost.TabSpec reportsSpec = tabHost.newTabSpec("reports").setIndicator("Reports")
    .setContent(new TabHost.TabContentFactory(){
        public View createTabContent(String tag) {
            Context context = Main_screen.this;
            ls1 = new ListView(Main_screen.this); 
            //populate m_data from the database

            CustomAdapter adapter =  new CustomAdapter(context, m_data);
            ls1.setAdapter(adapter);    
            return ls1;}});
tabHost.addTab(reportsSpec);

但这并不能解决我的问题。看起来createTabContent中的代码只在创建选项卡时执行,而不是每次切换到REPORTS选项卡时都执行。

这可以完成吗?我们每次切换到标签时都可以创建标签的内容吗? 请帮忙。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在tabview中,尝试将数据加载到onResume方法中。