2017-10-12 27 views
0

這個錯誤是什麼,我該如何解決這個問題?這讓我瘋狂。不能從靜態上下文切換語句引用

public static void NSOMUHDialog(final Context context) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    builder.setTitle("Menu"); 
    builder.setCancelable(true); 
    builder.setItems(new CharSequence[]{"Announcements", "Rate us", "Get support", "How to use?", "Share download link"}, 
     new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
       switch (which) { 
       case 0: 
        if (NSOMUHUpdateChecker.getInstance(context).isOnline()) { 
        // internet is available, fetch announcements 
        new NSOMUHFetchAnnouncements().execute(); 
        } else { 
        // device is offline 
        Toast.makeText(context, "not connected", Toast.LENGTH_LONG).show(); 
        } 
        break; 

錯誤:

NSOMUHMenu.this' cannot be referenced from a static context

+0

後,你得到的錯誤代碼中刪除static關鍵字。如錯誤消息所示,您不能在靜態方法內使用'this',因爲它不是靜態的。 –

+0

我知道你的意思,bhandari saab,但是這實際上是我得到錯誤的地方。我只是按Ctrl + F,看着「menu.this」了,它甚至不在我的全班,我不知道它是如何顯示出來的。 – user8091716

+0

我的班級的名字是NSOMUHMenu – user8091716

回答

0

不能調用一些不存在的。由於您尚未創建對象,因此非靜態方法尚不存在。靜態方法(按定義)總是存在。

請使用靜態關鍵字在你NSOMUHUpdateChecker類

public static void getInstance(Context context) 
0

距離函數聲明

+0

它會產生其他錯誤,而沒有靜態 – user8091716

相關問題