Android - 在不启动新活动的情况下从一个活动中调用另一个活动中的方法

3
我正在使用GreenDroid开发Android应用程序。目前该应用程序只是用于测试,因此它包含一个ActionBar和一个刷新按钮、三个选项卡以及每个选项卡的一个活动。
我想做的就是在ActionBar上按下刷新按钮时显示一个Toast消息,但我希望这个Toast消息来自我的一个活动,我们称之为Listener1Activity,它是坐落在第一个选项卡中的活动... 这是因为Listener1Activity最终将包含一个列表,当ActionBar按钮被按下时,我希望重新加载该列表,如果我现在可以用一个简单的Toast消息让它工作,那么稍后我就可以解决这个问题。
我查看了意图、广播等,但没有找到合适的方法。
希望每次按下按钮时都启动新的活动,我只希望调用其中的一个方法并显示Toast。
所以基本上就像同时运行两个活动,一个按下按钮后调用另一个活动中的方法。对吗?还是我搞错了?
SenderActivity和Listener1Activity。
在iOS中,我只需从SenderActivity发送一个NSNotification,在Listener1Activity中添加一个观察者即可。在Android中,最好的方法是什么?
谢谢!
Steven
4个回答

5

如果您不希望实例化其他Activity,则此方法不适用。如果这是多个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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接