Java 允许从其他类访问toast

Java 允许从其他类访问toast,java,android,Java,Android,我想用另一个班级的祝酒词 在第1课中,我有toast方法: public static void textToast(String textToDisplay) { Context context = getApplicationContext(); CharSequence text = textToDisplay; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context

我想用另一个班级的祝酒词

在第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(“”)访问它


如果您对此有任何建议,我们将不胜感激。谢谢

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

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
调用它)

谢谢您的帮助,但它似乎也不起作用。另一个类不是活动,也不是嵌套的。它只是一个包含主活动逻辑的简单类。当我在参数中放入上下文时,这不允许我使用在主活动中显示为字符串的textToast(“”)。谢谢您需要一个
上下文来显示祝酒词。因此,无论您想在何处调用方法,都必须提供一个上下文——通常是活动的上下文。通过您的活动,您可以调用
WhatEverClass.textToast(“,this)
。。。如果你想从非上下文中调用你的方法,唯一的方法就是在使用方法之前定义一个上下文…好的,谢谢,在这个活动的主类中,它与这个一起工作。在这个简单的类中,我创建了一个带有context的新方法,当我放置(“,this)时,它说这不能在静态上下文中使用,还有什么可以替代它的吗?这是一个完美的解决方案
public void FlesmynToast(Activity fActivity, String fMessage) {
    LayoutInflater fInflater = fActivity.getLayoutInflater();
    View fView = fInflater.inflate(R.layout.custom_toast (ViewGroup) fActivity.findViewById(R.id.custom_toast_layout_id));

    ImageView image = (ImageView) fView.findViewById(R.id.image);
    image.setImageResource(R.drawable.ic_launcher);

    TextView fText = (TextView) fView.findViewById(R.id.text);
    fText.setText(fMessage);

        // Toast...
    Toast fToast = new Toast(fActivity.getApplicationContext());
    fToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    fToast.setDuration(Toast.LENGTH_LONG);
    fToast.setView(fView);
    fToast.show();
}