2013-04-16 66 views
0

我想根據我的孩子活動的內容更新標籤的標題。如何從子活動調用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 
    } 

} 
+0

能否請您粘貼logcat的輸出? –

+0

似乎是錯誤是由空指針異常引起的......不能在我的TabActivity中找到我自己的方法嗎? – user1731839

+0

@ user1731839您是如何解決'NullPointerException'的? –

回答

1

從孩子的呼叫

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

在父定義setTitle(String s)方法

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

謝謝老兄。我可以得到parentActivity的實例,但是當我嘗試在自己的tabActivity中調用該方法時,出現空指針異常。 – user1731839

相關問題