1

我想根据我的孩子活动的内容更新选项卡的标题。

但是,当我打电话时:

TabActivity parent = (TabActivity) getParent();
TabHost parentHost = (TabHost) parent.getTabHost().findViewById(android.R.id.tabhost);

在孩子中,程序崩溃了。* (感谢 StinePike)现在我知道我无法获取 TabHost 的实例,但我仍然无法调用我自己的 TabActivity 中定义的方法。*

任何人都可以帮助我发现问题并解决它吗?

我的 TabActivity 设置:

public class Tab extends TabActivity {  
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.tab);

        final TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);

        View newTab = (View) LayoutInflater.from(this).inflate(R.layout.tabmini, null);
        TextView text0 = (TextView) newTab.findViewById(R.id.tab_label);
        text0.setText("new tab");

        tabHost.setup(this.getLocalActivityManager());
        tabHost.setCurrentTab(1);

        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(newTab).setContent(new Intent(this, BrowserActivity.class)));

    }

    public void addTab(String startPage){
        //...Add a new Tab  
    }   
    public void setTabTitle(String title){
        //...Set new title  
    }   

}
4

2 回答 2

3

来自孩子的电话

RootActivity parentActivity;
parentActivity = (YourRootActivity) this.getParent();
parentActivity.setTitle(title);

在父定义setTitle(String s)方法中

public void setTitle(String s){
 // set title here
}
于 2013-04-16T12:38:57.053 回答
0

TabActivity 已弃用(http://developer.android.com/reference/android/app/TabActivity.html)。请考虑使用其他东西:

于 2013-04-16T14:32:17.223 回答