Fragment not attached to Activity

問題:

java.lang.IllegalStateException: Fragment MusicNetFragment{4840349} not attached to Activity? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? at android.support.v4.app.Fragment.getResources(Fragment.java:646)?

原因:

在Fragment的構(gòu)造方法中調(diào)用了 getResources();

getResources().getStringArray(R.array.string);

由于new Fragment構(gòu)造方法時還沒有與FragmentActivity 進(jìn)行 attached,所以父類Fragment中找不到 (FragmentHostCallback) mHost 即為空. 所以調(diào)用getResources()時拋出了異常;

final public Resources getResources() { if(mHost==null) {

throw newIllegalStateException("Fragment "+this+" not attached to Activity");

}

returnmHost.getContext().getResources();

}

來看下源代碼: 只用當(dāng)Fragment與activity 產(chǎn)生關(guān)系時(attached)才會調(diào)用如下

FragmentActivity類 : 在成員變量中new 了一個 HostCallbacks對象,(HostCallbacks繼承自FragmentHostCallback)

final FragmentController mFragments = FragmentController.createController(new HostCallbacks());?

FragmentController類:

private FragmentController(FragmentHostCallback callbacks) {

mHost= callbacks;

}

該圖片引用于: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1030/3641.html

解決方法:?

在onStart()方法中進(jìn)行g(shù)etResources()操作;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容