java - 允许从另一个类访问 toast

标签 java android

我正在尝试使用另一个类(class)的 toast 。

在第 1 类中,我有 toast 方法:

public static void textToast(String textToDisplay) 
{
    Context context = getApplicationContext();
    CharSequence text = textToDisplay;
    int duration = Toast.LENGTH_SHORT;

    Toast toast = Toast.makeText(context, text, duration);
    toast.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER, 50, 50);
    toast.show();
}

我试图从另一个类调用这个 toast,但是当我将该方法设为静态时,它说无法对此方法 getApplicationContext() 进行静态引用。

我通过使用 class2.textToast(""); 来访问它

对此的任何建议将不胜感激。谢谢

最佳答案

如果您想提供一个对不同上下文(例如 Activity )有效的方法,请将此上下文作为参数传递。

public static void textToast(String textToDisplay, Context context)  { ... }

如果您想从嵌套内部类调用此方法(通常是这种情况),您可以使用 this 作为上下文

public void textToast(String textToDisplay) {
    ...
    Toast toast = Toast.makeText(OuterClass.this, text, duration);
    ...
}

(或者在外部类中实现 textToast 并通过嵌套内部类中的 OuterClass.this.textToast 调用它)

关于java - 允许从另一个类访问 toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5252994/

相关文章:

java - 使用 Eclipse 将所有外部类打包到我的 jar 中

android - 为什么我不应该使用操作系统提供的菜单图标?

java - 在 JodaTime 中更改 shortDate() 格式的日期模式

android - 关系房间数据库 : The class must be either entity or database view

java - 已经开始 Activity 后 startActivity() 的任何后果?

html - Android 网络应用程序 : Position:fixed broken?

java - Android 启动画面延迟

java - 将操作栏的标题从 Fragment 更改为 Activity

使用自定义序列化时的 Java 执行逻辑

Java:标记中断