Java 通过静态方法创建Toast

Java 通过静态方法创建Toast,java,android,android-fragments,Java,Android,Android Fragments,我在我所有的应用程序片段中都使用了这段代码,如果我使用静态方法应该会更好。我怎么做?这种静态方法也应该适用于片段,而不仅仅是活动 我的非静态showToast方法: public void showToast(String msg){ Toast.makeText(getActivity().getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); } 使用此静态方法求解,感谢@KishanDhamat public stati

我在我所有的应用程序片段中都使用了这段代码,如果我使用静态方法应该会更好。我怎么做?这种静态方法也应该适用于片段,而不仅仅是活动

我的非静态showToast方法:

public void showToast(String msg){
    Toast.makeText(getActivity().getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
}
使用此静态方法求解,感谢@KishanDhamat

public static void showToast(Context context, String text) {
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}

使用以下方法:

public static void showToast(Context context, String text) {
    Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
现在,要调用此方法,应按如下方式调用:

ClassName.showToast(context,"text");
这里的classname是包含静态方法的类。

  • 更改方法的签名并将给定的
    上下文添加为参数
  • 更改方法的签名,使其
    静态
  • 上下文作为
    Toast.makeText调用的第一个参数传递

这是我的解决方案,希望它能帮助您,如果您从静态方法调用它,您希望
getActivity()
返回什么活动?(还要注意,遵循Java命名约定,这应该是
showtoos
),但该方法不是静态的,我每次都在片段中调用它。顺便说一句,我已经编辑了主要的问题,请看我的编辑以获得答案
public static void changeActivity(Context context,Class that){
    context.startActivity(new Intent(context, that));
} // my static method

  public void forgotPass(View view){
    Function.changeActivity(LoginActivity.this,ForgotPass.class);
} // my activity i want to change