2011-02-23 16 views
3

我正在使用GreenDroid開發Android應用程序。該應用程序僅用於測試atm,因此它包含的是帶有刷新按鈕,三個選項卡和每個選項卡的活動的ActionBar。Android - 在不開始新活動的情況下從另一個活動調用方法

所有我想在一分鐘內實現的操作是在ActionBar上按下刷新按鈕時顯示一個Toast消息,但我想要從我的一個活動中調用Toast消息,我們將其稱爲Listener1Activity是位於第一個選項卡中的活動...這是因爲當按下ActionBar按鈕時,Listener1Activity最終將包含一個我要重新加載的列表,如果我現在可以使用簡單的Toast消息來處理它,那麼I可以稍後解決。

我已經調查了意圖,廣播,但沒有任何東西似乎適合。

不要希望每次按下按鈕時都會開始新的活動,我只是想要一個方法來調用並顯示敬酒。

所以基本上,就好像有兩個活動同時運行,而另一個按鈕在另一箇中調用方法。不是嗎?或者我弄錯了嗎?

SenderActivity和Listener1Activity。

在iOS中,我只需從SenderActivity發送一個NSNotification,並在Listener1Activity中添加一個觀察者。在Android中實現這一點的最佳方式是什麼?

謝謝!

史蒂芬

回答

5

如果不希望其他活動實例做什麼,那麼這是不是這種方法的地方。如果它是多個Activity之間的共享功能,那麼爲什麼不爲從Activity派生的活動創建一個基類。

public class ActivityBase extends Activity 
{ 
public void showToast() 
{ 
... 

那麼你的活動,從這個

public class MyActivity extends ActivityBase 
{ 
public void someMethod() 
{ 
showToast(); 
3

權派生。如果該方法是靜態的,它有可能應該是,如果這是你的目標,只是把它像這樣:

YourClass.staticMethod(params); 

如果沒有,你需要創建一個對象吧。

YourClass yourClass = new YourClass(constructorParams); 
yourClass.method(params); 

這應該做到這一點。

0

我不能確定你的問題,但嘗試這樣可能會工作

((MainActivity) activity).textViewSetText(); 

public void textViewSetText (String value){ 

    tv.setText(value);  
} 

,但你的行爲必須延伸在MainActivity。

0

除了靜態方法,你不能調用任何方法,在另一個活動!

相關問題