2011-10-05 65 views
0

我想請教的問題是要證明我當前的工作流程是如何設置的第一個最簡單的方法:如何在ActivityGroup中的ActivityGroup的子Activity中調用非靜態方法?

  1. 有一個TabHost一個具有ActivityGroup作爲其標籤之一
  2. ActivityGroup作爲其中調用一個我無法控制的外部服務。
  3. 外部服務具有揭開序幕在ActivityGrouponActivityResultActivity調用該服務的回調函數。這是因爲,爲了有甚至有onActivityResult火,我只好打電話getParent().startActivityForResult(

的問題是,我想「東西」在Activity調用外部服務(例如Alert Dialog,網絡發生服務電話等)。

那麼,怎樣才能在ActivityGroup的子Activity中調用一個非靜態方法?這甚至有可能嗎?

回答

1

我想通了。在ActivityGrouponActivityResult我使用getLocalActivityManager().getCurrentActivity()編輯當前活動:投它,因爲我需要的類,然後調用它的非靜態方法:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 


     FooChildActivity foo = (FooChildActivity)getLocalActivityManager().getCurrentActivity(); 
     foo.barNonStaticMethod(requestCode, resultCode, data); 

} 
+0

一個小點:你是不是「將當前活動轉換爲您需要的課程;你正在「鑄造」到你需要的班級。它很小,但並不重要。如果有可能將*轉換爲不同的類,即使當前活動不是所需的類型,這也可以工作。這是不可能的,而且在那種情況下不起作用。有問題的活動是_already_所需的類型,這就是鑄造工作的原因。 –

+1

啊,謝謝你澄清!我會編輯我的答案以使用正確的術語。 – AngeloS

相關問題