我需要在Fragment中顯示一個警告對話框(如果有問題,請在錯誤回調中)。這裏的錯誤:java.lang.NullPointerException在片段中嘗試使用AlertDialog.Builder時
05-21 11:05:33.635 31869-31869/me.myapp.local E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at android.view.LayoutInflater.from(LayoutInflater.java:210)
at android.view.ContextThemeWrapper.getSystemService(ContextThemeWrapper.java:75)
at android.support.v7.app.AlertController$AlertParams.<init>(AlertController.java:673)
at android.support.v7.app.AlertDialog$Builder.<init>(AlertDialog.java:280)
at me.myapp.fragment.SectionFrag$1.failure(SectionFrag.java:179)
at retrofit.CallbackRunnable$2.run(CallbackRunnable.java:53)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
而這裏的部分代碼:
@Override
public void failure(final RetrofitError error) {
Log.wtf(TAG, error);
final AlertDialog.Builder alertDB = new AlertDialog.Builder(getActivity(), android.support.v7.appcompat.R.style.Base_Theme_AppCompat_Dialog_Alert)
alertDB.setCancelable(false);
我使用API 22和v4片段。我很詫異的問題是我只有如果使用系統返回按鈕得到這個崩潰。如果使用我的操作欄中顯示的應用程序的上/下菜單項,這部分代碼可以正常工作。
工作將在用戶按下片段中的後退按鈕,VS在我的動作條按後退按鈕是這種情況?在這兩種情況下,我的片段的onPause()被調用。 – regretoverflow
您可以在片段的onDetach()方法中添加日誌記錄以查看發生的時間。 –