我有一个TabActivity
其中有两个选项卡的选项卡,将来选项卡可能会增加。所以我需要MyTabActivity
根据情况更改其中任何一个的标题,以便从所有选项卡中都可以看到它。
public class MyTabActivity extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tabContext = this;
setTitle("My App Name");
final TabHost tabHost = getTabHost();
tabHost.addTab(tabHost.newTabSpec(TAB_1).setIndicator(TAB_1, getResources().getDrawable(R.drawable.tab1)).setContent(new Intent(this, first.class)));
tabHost.addTab(tabHost.newTabSpec(TAB_2).setIndicator(TAB_2, getResources().getDrawable(R.drawable.tab2)).setContent(new Intent(this, second.class)));
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
setTabTitle();
}
});
tabHost.setCurrentTabByTag(TAB_1);
}
}
我已经写setTabTitle()
了函数来设置我的tabActivity
标题。
public void setTabTitle()
{
PrefManager prefManager = new PrefManager(getApplicationContext());
String tabtitle = prefManager.getTitle();
tabContext.setTitle("My App Name" + " " + tabtitle);
}
当我在这两个活动中获取一些数据时,我试图MyTabActivity
从 TAB_1( ListActivity ) 或 TAB_2( Activity ) 更改标题。但是当我更改选项卡时,只有标题被更改,因为我在 ( setOnTabChangedListener
) 中调用了它。但是我想在我的任何一项活动中获得一些数据并调用此setTabTitle
函数后立即更改它。
到目前为止,我已经尝试了两件事。将其setTabTitle()
设为静态并从两个活动中调用它,MyTabActivity.setTabTitle("My Title")
但它不起作用。
public static void setTabTitle(String title)
{
tabContext.setTitle("My App Name" + " " + title);
}
其他是本论坛成员建议的
MyTabActivity myTabs = (MyTabActivity) this.getParent();
myTabs.setTitle("This is First cool Activity");
但是这两个都不起作用。我需要在活动中做某种刷新吗?
帮助我如何做到这一点。
谢谢