java - Toast 在主 Activity 中工作正常,但在类中则不行

标签 java android toast

MainActivity 中使用 Toast 效果很好

Toast.makeText(getApplicationContext(), "Button is clicked", Toast.LENGTH_LONG).show();

但是当我在类中使用它时,getApplicationContext() 会出现红线并且不起作用。我怎样才能让它在类里面发挥作用?

最佳答案

您需要将上下文从 Activity 传递到非 Activity 类并在那里使用相同的内容

  new NonActivityClass(ActivityName.this);

然后

 COntext mContext;
 public NonActivityClass(Context context)
 {
     mContext =context;
 }

然后

 Toast.makeText(mContext, "Button is clicked", Toast.LENGTH_LONG).show();

注意:不要保留对上下文 Activity 的长期引用(对 Activity 的引用应与 Activity 本身具有相同的生命周期)以避免内存泄漏。

关于java - Toast 在主 Activity 中工作正常,但在类中则不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22573372/

相关文章:

Android 设备进入挂起状态后立即重启

java - 无法从我的主要 Activity 以外的 Activity 显示 Toast

android - 在 Android 应用程序中显示未接来电 Toast

javax注解问题

java - 单击按钮时 EditText.getText().toString() 崩溃

java - 在 Java 代码中为 TextView 设置文本

android - 为什么大多数 Android 设备不像典型操作系统那样具有交换区域?

android - 在 Fragment 中使用 Toast

java - 从 Java 运行进程并观察其内存消耗

java - Intellij - 相同的 jar 到多个位置