如何从子活动中调用TabActivity中的函数?

时间:2013-04-16 12:35:17

标签: android android-tabhost tabactivity

我想根据儿童活动的内容更新标签的标题。

然而,当我打电话时:

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  
    }   

}

2 个答案:

答案 0 :(得分:2)

来自儿童电话

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

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

public void setTitle(String s){
 // set title here
}

答案 1 :(得分:0)

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