2015-09-08 37 views
2

我試圖從一個活動叫片段的方法,所以我用這種事情:獲取子片段創建後

getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, new DummyFragment()).commit(); 
((DummyFragment) getFragmentManager().findFragmentById(R.id.fragmentContainer)).method(arg1, arg2, ...); 

我的問題是,我得到一個異常:

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.app.DummyFragment.method(java.lang.String, java.lang.String, java.util.List)' on a null object reference

我想我知道什麼是錯誤的:當我獲取片段,它不是創建或可訪問,所以有什麼辦法讓它工作?例如,當片段準備好時的監聽器?

謝謝。

回答

2

看來你錯過了commit()交易

getFragmentManager().beginTransaction() 
    .replace(R.id.fragmentContainer, new DummyFragment()).commit(); 

編輯:

添加前行findFragmentById

getFragmentManager().executePendingTransactions() 
+0

Pleae檢查我的編輯,添加行'executePendingTransactions' –

+0

非常感謝!有用 :) – Rogue