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 に答える