2016-10-13 61 views
-2

有很多問題詢問如何從另一個課程中彈出一個吐司,我必須嘗試過所有這些課程,而且看起來沒有任何工作。需要非活動類中的上下文

我擴展了webViewClient,並需要彈出一些消息與加載錯誤等與吐司,但我似乎無法定義上下文?

public class MyAppWebViewClient extends WebViewClient { 

    private static Context context; 
    public MyAppWebViewClient(Context c) { 
     context = c; 
    } 

    public static void popup(String message){ 
     Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 
    } 

    popup("Hello World") 
} 

這是錯誤:

Error:(301, 34) error: constructor MyAppWebViewClient in class MyAppWebViewClient cannot be applied to given types; 
required: Context 
found: no arguments 
reason: actual and formal argument lists differ in length 

我在做什麼錯?

+0

什麼行代碼會導致錯誤? –

+0

@Blackbelt - 感謝您的幫助,我按照您的建議添加了super();作爲第一行,但錯誤是相同的。 – crankshaft

回答

0

首先,context變量不應該是static。您的代碼可能會與static修飾符一起使用。但它使用不正確。

接下來,MyAppWebViewClient構造函數需要Context參數,因此創建MyAppWebViewClient實例時必須提供一個參數。例如:

WebViewClient client = new MyAppWebViewClient(this); 

我假設這行代碼在Activity的子類的方法中。如果您在Fragment子類中,請執行此操作:

WebViewClient client = new MyAppWebViewClient(getActivity()); 
+0

非常感謝你,你可能知道我不是專家,解決方案是從主要課程傳遞上下文,我今天學到了一些東西:-) – crankshaft

相關問題