1

我有一个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"); 

但是这两个都不起作用。我需要在活动中做某种刷新吗?

帮助我如何做到这一点。

谢谢

4

0 回答 0