如何从不扩展Activity的类中显示Toast消息

use*_*889 11 android toast android-activity

可能重复:
如何从非活动类中祝酒?

如何Toast从不扩展Activity类的类创建和显示消息?我在另一个扩展的类中使用此类Activity.

Bla*_*elt 17

您需要一个上下文参考.只需要一个帮助方法

  public static void showToastMethod(Context context) {
        Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show();
  }
Run Code Online (Sandbox Code Playgroud)

  • 这似乎是泄露上下文的好方法.而是将上下文作为参数传递给`showToastMethod()`并从那里使用它.如果您的类的实例比上下文所属的activity/service /更长寿,那么持有对它的永久引用可能会很糟糕.使该引用静态不会使它更好,更糟糕. (2认同)

Mob*_*ist 5

您可以通过将值传递给nonActivity类来将该活动的上下文传递给您的类

例:

new NonActivityClass(Activityclass.this) ;
Run Code Online (Sandbox Code Playgroud)

并如上面的答案

new MyClass(ActivityClass.this);
Run Code Online (Sandbox Code Playgroud)

在NonActivityClass中

public class NonActivityClass {

  public NonActivityClass (Context context) {

        Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show();
  }

}
Run Code Online (Sandbox Code Playgroud)

希望这对你有用......