我正在构建的应用程序有一个带有三个选项卡的tabhost。目标是在切换发生时更新新选项卡中的显示。我在构建选项卡主机的主要活动中设置了以下选项卡更改侦听器。
tabHost.setOnTabChangedListener(new OnTabChangeListener(){
public void onTabChanged(String tabId) {
//Now what?
}
});
问题是,如何使用tabId
给出并使用它来调用该选项卡中的方法?
稍微澄清一下:当您为新选项卡创建Intent
时,您指定了一个活动类,可能会创建一个对象来处理该选项卡的设置和管理。
intent = new Intent().setClass(this, Setup.class);
spec = tabHost.newTabSpec("setup").setIndicator("",
res.getDrawable(R.drawable.tab_setup))
.setContent(intent);
tabHost.addTab(spec);
我正在寻找的这个问题是如何获得对该对象的引用?在上面的示例中,Setup
类被实例化以处理“设置选项卡”。
立即重述我的问题:我如何从OnTabChangeListener
调用Setup
类中的方法?
答案 0 :(得分:2)
尝试使用
tabHost.setOnTabChangedListener(new OnTabChangeListener(){
public void onTabChanged(String tabId) {
//Now what?
Object.refreshDrawableState();
}
});
Where Object = any display Object。
答案 1 :(得分:1)
事实证明,问题的解决方案离家较近。该解决方案不是将代码附加到TabHost,而是通过覆盖onPause和onResume方法进入活动的生命周期。
@Override
public void onResume() {
super.onResume();
// Update your UI here.
}