【问题标题】:How to initialize tab content when app is initialized初始化应用程序时如何初始化选项卡内容
【发布时间】:2011-07-21 15:04:48
【问题描述】:

我有一个有 2 个标签的应用。每个选项卡加载一个 xml 文件(相当大,可能 400 项 rss 文件)。

默认情况下,该选项卡在单击之前不会获取 xml。我只是想要一种在首次打开应用程序时加载所有内容的方法。

这是主视图:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Resources res = getResources(); // Resource object to get Drawables
    TabHost tabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Resusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab

    // Audio Feed
    intent = new Intent().setClass(this, AudioFeed.class);
    spec = tabHost.newTabSpec("audio").setIndicator("",
                      res.getDrawable(R.drawable.ic_tab_audio))
                  .setContent(intent);
    tabHost.addTab(spec);


    // Video Feed
    intent = new Intent().setClass(this, VideoFeed.class);
    spec = tabHost.newTabSpec("video").setIndicator("",
                      res.getDrawable(R.drawable.ic_tab_video))
                  .setContent(intent);
    tabHost.addTab(spec);

    tabHost.setCurrentTab(0); //todo: remember what tab user was last on
}

【问题讨论】:

    标签: java android android-tabhost


    【解决方案1】:

    我使用 TabHost.setCurrentTab(x) 或 TabHost.setCurrentTabByTag(x)。

    mTabHost.setCurrentTab(1);
    mTabHost.setCurrentTab(0);
    

    对于初始化,我使用TabHost.OnTabChangeListener

    private OnTabChangeListener mOnTabChangeListener = new OnTabChangeListener() {
        @Override
        public void onTabChanged(String tag) {
            if (FBIntent.EXTRA_XX.equals(tag)) {
                // Current tab is xx.
                ... if xx not init -> ...
            } else if (FBIntent.EXTRA_YY.equals(tag)) {
                // Current tab is yy.
                ...
            }
        }
    };
    

    【讨论】:

    • 啊,setCurrentTab 方法很好用。我用过它,现在它是金色的。感谢 user802421
    【解决方案2】:

    用同样的方法做其他标签的操作。我的意思是当您单击它们时其他人会做什么。因此,所有选项卡都有相同的内容。不要忘记在OnTabChanged() 方法中包含这个相同的选项卡并再次执行相同的操作,否则再次单击此选项卡时将一无所获。

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 1970-01-01
      • 2013-03-10
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多