显示来自Application类的Toast消息

我在我的应用程序中有几个类。 一些是活动,服务和纯java类。 我知道我可以在一个Activity中显示Toast消息,但是我想从纯java类中显示Toast。

在java类中,我将一个上下文传递给构造函数,但是这似乎并没有显示吐司。

我在Application类中创build了一个将String作为参数的方法,希望能够使用Application上下文生成Toast,这里也没有喜悦。

我怎样才能生成一个不是服务或活动等类的敬酒

public class LoginValidate{ public LoginValidate(Context context) { this.context = context; nfcscannerapplication = (NfcScannerApplication) context .getApplicationContext(); } public void someMethod(){ nfcscannerapplication.showToastMessage(result); } } 

///然后在我的应用程序类

 public void showToastMessage(String message){ Toast.makeText(this.getApplictionContext(), "Encountered a problem with sending tag: " + message, Toast.LENGTH_LONG).show(); } 

Solutions Collecting From Web of "显示来自Application类的Toast消息"

首先创build这样的应用程序类

 public class ApplicationContext extends Application { /** Instance of the current application. */ private static ApplicationContext instance; /** * Constructor. */ public ApplicationContext() { instance = this; } /** * Gets the application context. * * @return the application context */ public static Context getContext() { if (instance == null) { instance = new ApplicationContext(); } return instance; } /** * display toast message * * @param data */ public static void showToast(String data) { Toast.makeText(getContext(), data, Toast.LENGTH_SHORT).show(); } } 

ApplicationContext.showToast("your string");调用此方法ApplicationContext.showToast("your string");

注意上下文对象泄漏

有两种方法可以做到这一点,如果你有一个有效的上下文,你可以像@CapDroid写道:

 public static void showToastWithTitle(String title) { Toast.makeText(getApplicationContext(), title, Toast.LENGTH_LONG).show(); } 

如果你不这样做,你也可以发送一个Context,

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

请注意,您可以在Application.java中定义一个静态上下文,并使用它来调用shoh toast。

希望有所帮助。

在你的应用程序类中写这个方法。 你只需要通过任何Activity的parameter passing消息。

 public void showToast(String message) { Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); } 
 Toast.makeText(getActivity(), "Index....."+index, Toast.LENGTH_LONG).show();