我的应用程序中有几个类。有些是Activities,Services和Pure java类。我知道我可以在Activity中显示Toast消息,但我想从纯java类中显示Toast。
在java类中,我将上下文传递给构造函数,但这似乎并不显示吐司。
我在Application类中创建了一个方法,该方法将String作为参数,希望我可以使用Application上下文生成Toast,这里没有任何欢乐。
如何从不是服务或活动等的类生成Toast。
public class LoginValidate{
public LoginValidate(Context context) {
this.context = context;
nfcscannerapplication = (NfcScannerApplication) context
.getApplicationContext();
}
public void someMethod(){
nfcscannerapplication.showToastMessage(result);
}
}
///然后在我的Application类
中public void showToastMessage(String message){
Toast.makeText(this.getApplictionContext(), "Encountered a problem with sending tag: " + message, Toast.LENGTH_LONG).show();
}
答案 0 :(得分:6)
首先像这样创建Application类..
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");
注意上下文对象泄漏..
答案 1 :(得分:4)
有两种方法可以做到这一点,如果你有一个有效的上下文,你可以像@CapDroid一样写道:
public static void showToastWithTitle(String title) {
Toast.makeText(getApplicationContext(), title, Toast.LENGTH_LONG).show();
}
如果不这样做,您也可以发送一个上下文,
public static void showToastWithTitleAndContext(Context context, String title) {
Toast.makeText(context, title, Toast.LENGTH_LONG).show();
}
请注意,您可以在Application.java中定义静态Context,并使用它来调用shoh toast。
希望有所帮助。答案 2 :(得分:2)
在您的应用程序类中编写此方法。您只需要在任何Activity中传递参数中的消息。
public void showToast(String message)
{
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
}
答案 3 :(得分:1)
它对我有用:
Toast.makeText(this.getContext(), R.string.title, Toast.LENGTH_LONG).show();
答案 4 :(得分:1)
需要将上下文传递到showToastMessage(String message)
赞这个showToastMessage(String message, Context context)
//然后在我的Application类中
public void showToastMessage(String message, Context context){
Toast.makeText(context, "Encountered a problem with sending tag: " + message, Toast.LENGTH_LONG).show();
}
答案 5 :(得分:0)
Toast.makeText(getActivity(), "Index....."+index, Toast.LENGTH_LONG).show();