Android - 在一个活动中调用方法,而不启动新活动

时间:2011-02-23 02:39:54

标签: java android greendroid

我正在使用GreenDroid开发Android应用。该应用程序仅用于测试atm,因此它包含的是一个带有刷新按钮的ActionBar,三个选项卡以及每个选项卡的活动。

当我在ActionBar上按下刷新按钮时,我正在尝试实现的所有功能都显示一个Toast消息,但是我希望从我的一个活动中调用toast消息,我们将其称为Listener1Activity这是第一个选项卡中的活动...这是因为Listener1Activity最终将包含一个列表,我想在按下ActionBar按钮时重新加载,如果我现在可以使用简单的Toast消息,那么我可以稍后整理一下。

我研究过意图,广播,但似乎没什么好看的。

不希望每次按下按钮时都要启动新活动,我只想要一个方法来调用并显示吐司。

所以基本上,就像有两个活动同时运行一样,一个按钮按下一个调用另一个方法。不是吗?或者我错了吗?

SenderActivity和Listener1Activity。

在iOS中,我只是从SenderActivity发送NSNotification,并在Listener1Activity中添加一个观察者。在Android中实现这一目标的最佳方式是什么?

谢谢!

史蒂芬

4 个答案:

答案 0 :(得分:5)

如果您不希望实例化其他Activity,那么这不是此方法的位置。如果它是多个Activity之间的共享功能,为什么不为从Activity派生的活动创建基类。

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

然后你的活动来自这个

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

答案 1 :(得分:3)

右。如果这个方法是静态的,如果这是你的目标可能应该是这样的,那么就这样称呼它:

YourClass.staticMethod(params);

如果没有,您需要为它创建一个对象。

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

应该这样做。

答案 2 :(得分:0)

我不确定你的问题,但尝试这样可能会起作用

((MainActivity) activity).textViewSetText();

public void textViewSetText (String value){

    tv.setText(value);    
}

但您的活动必须扩展MainActivity。

答案 3 :(得分:0)

除了静态方法之外,您无法调用其他活动中的任何方法!