2017-01-04 44 views
0

在我的代碼中,當互聯網不可用時,我顯示一個警告對話框。在該對話框中,我設置了一條消息「互聯網不可用」。在該對話框中,我放置了兩個按鈕'Refresh'&'Setting'。當互聯網的&對話框來了,我點擊設置按鈕它給出NullPointerException調用意圖設置

這是錯誤(Logcat)。

E: FATAL EXCEPTION: main Process: 
     com.appiphy.spacecomp.spinnerframework1, PID: 30424 
      java.lang.NullPointerException: Attempt to invoke virtual method 'android.app.ActivityThread$ApplicationThread 
    android.app.ActivityThread.getApplicationThread()' on a null object 
    reference 

      at android.app.Activity.startActivityForResult(Activity.java:3823) 
      at android.app.Activity.startActivityForResult(Activity.java:3784) 
      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:784) 
      at android.app.Activity.startActivity(Activity.java:4094) 
      at android.app.Activity.startActivity(Activity.java:4062) 
      at com.appiphy.spacecomp.spinnerframework1.activity.MainActivity$10.onClick(MainActivity.java:967) 
      at android.support.v7.app.AlertController$ButtonHandler.handleMessage(AlertController.java:157) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:135) 
      at android.app.ActivityThread.main(ActivityThread.java:5297) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:372) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 

startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS)); 

我上述行用於在設備上打開設置。

如何解決上述錯誤?

+3

請將您的代碼發送 – AJay

+0

此代碼完美適用於我的案例。 – Spartan

+0

您的對話框位於活動之外。試試這個'context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));' – Spartan

回答

0

試試這個:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(this, android.R.style.Theme_Holo_Light_Dialog)); 
      alertDialogBuilder 
        .setMessage("No internet connec" + 
          "" + 
          "tion on your device. Would you like to enable it?") 
        .setTitle("No Internet Connection") 
        .setCancelable(false) 
        .setPositiveButton(" Enable Internet ", 
          new DialogInterface.OnClickListener() { 

           public void onClick(DialogInterface dialog, int id) { 
            Intent dialogIntent = new Intent(android.provider.Settings.ACTION_SETTINGS); 
            dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
            startActivity(dialogIntent); 
           } 
          }); 

      alertDialogBuilder.setNegativeButton(" Cancel ", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int id) { 
        dialog.cancel(); 
       } 
      }); 

      AlertDialog alert = alertDialogBuilder.create(); 
      alert.show(); 

     } 
0

我不知道你的dialog是否你的活動中或在其他一些實用工具類。如果它在活動之外,那麼你應該使用上下文來啓動意圖。您可以傳遞活動的上下文,並調用 Intent intent = new Intent(android.provider.Settings.ACTION_SETTINGS)); mContext.startActivity(intent); mContext是您將從活動傳遞過來的上下文。

相關問題