2011-02-23 48 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

除了静态方法,你不能调用任何方法,在另一个活动!

相关问题