2013-12-23 92 views
7

我在我的應用程序中有幾個類。一些是活動,服務和純java類。我知道我可以在Activity中顯示Toast消息,但我想從純java類中顯示Toast。顯示來自應用程序類的Toast消息

在Java類我通過上下文來構造,但這似乎並沒有顯示敬酒。

我創建的應用程序類,需要一個String作爲參數,希望我可以使用應用程序上下文,這裏要麼沒有喜悅生成吐司的方法。

我如何能在一個類中的吐司不是一個服務或活動等

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(); 

    } 
+0

分享您的代碼 – Blackbelt

+0

@blackbelt編輯 – turtleboy

+0

你試過我的解決辦法@turtleboy? –

回答

2

寫這個方法在你的應用程序類。你只需要通過任何Activity的參數傳遞消息。

public void showToast(String message) 
{ 
    Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show(); 
} 
+0

我已經試過了感謝 – turtleboy

+0

這是爲我工作.. –

+0

嗨,還我不是調用從活動中的烤麪包的消息。我從一個普通的Java類調用Toast。這就是它沒有顯示的原因。 – turtleboy

6

首先創建應用程序類這樣的..

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");

小心上下文對象泄漏..

+0

得到這個錯誤:'''java.lang。NullPointerException:嘗試調用空對象引用的虛擬方法'android.content.res.Resources android.content.Context.getResources()'' – kangear

+0

@kangear你的字符串是空的。你是如何傳遞字符串? –

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定義靜態背景,並使用它來調用shoh敬酒。

希望有幫助。

0
Toast.makeText(getActivity(), "Index....."+index, Toast.LENGTH_LONG).show(); 
相關問題