我有一个有 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
}
最佳答案
我使用 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.
...
}
}
};
关于java - 如何在应用程序初始化时初始化选项卡内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6778250/