3

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

我现在想要实现的只是在按下 ActionBar 上的刷新按钮时显示一条 toast 消息,但我希望从我的一个活动中调用 toast 消息,我们将其称为 Listener1Activity 这是位于第一个选项卡中的活动...这是因为 Listener1Activity 最终将包含一个列表,我想在按下 ActionBar 按钮时重新加载该列表,如果我现在可以使用简单的 toast 消息让它工作,那么我可以解决这个问题之后。

我已经研究过意图、广播,但似乎没有什么合适的。

希望每次按下按钮时都开始新的活动,我只想要其中的一个方法来调用并显示 toast。

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

SenderActivity 和 Listener1Activity。

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

谢谢!

史蒂文

4

4 回答 4

5

如果您不希望实例化另一个 Activity,那么这不是此方法的地方。如果它在多个 Activity 之间共享功能,为什么不为您的 Activity 创建一个派生自 Activity 的基类。

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

那么你的活动就来源于此

public class MyActivity extends ActivityBase
{
public void someMethod()
{
showToast();
于 2011-02-23T02:46:41.063 回答
3

正确的。如果该方法是静态的,如果这是您的目标,它可能应该是静态的,只需像这样调用它:

YourClass.staticMethod(params);

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

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

那应该这样做。

于 2011-02-23T02:47:49.553 回答
0

除了静态方法,你不能调用其他活动中的任何方法!

于 2015-01-05T09:19:37.103 回答
0

我不确定你的问题,但尝试这样可能会奏效

((MainActivity) activity).textViewSetText();

public void textViewSetText (String value){

    tv.setText(value);    
}

但是您的活动必须扩展 MainActivity。

于 2013-09-19T14:09:28.633 回答