我正在創建一個列表視圖的陣列適配器, 一切工作正常,我有2個片段和2個按鈕在這兩個片段之間更改的操作欄的頂部。 我的問題是,我得到的崩潰,如果我操之過急那些斷肢之間,當我打開fragOne,切換到fragTwo,然後迅速搬回fragOne .. fragOne拋出從getActivity上下文NPE ..Android - NullPointerException從創建適配器
這
adapter = new MainFragmentDocumentAdapter(getActivity(), docsList, DocumentsFragment.this, page);
日誌報告:即崩潰行
E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.bbb.app, PID: 17438
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:104)
at com.bbb.app.UI.adapters.MainFragmentDocumentAdapter.<init>(MainFragmentDocumentAdapter.java:51)
任何想法我怎麼能解決這個問題呢?
你得到因片段週期的問題上崩潰的是有時會導致getActivity()爲空。 – jvrodrigues 2015-02-09 16:30:51
getApplicationContext()不是最優的,因爲它不會在適配器內設置任何樣式。 ContextTheme將應用程序上下文與應用程序主題一起打包,或者使適配器成爲全局對象,以便在片段恢復時不會嘗試實例化另一個適配器,並且您的應用程序不會崩潰。 – jvrodrigues 2015-02-09 16:34:10
jvrodrigues謝謝你的回答,你能解釋一下嗎?我完全不明白,謝謝! – JozeRi 2015-02-09 16:39:37