0
我在片段中創建了一個接口,並在父活動中實現了它。android-接口中的片段將在onAttach()中實例化,否則不會
當代碼看起來是這樣的,一切完美的作品:
public class ExercisesCatsFragment extends Fragment {
OnCategorySelected mCallback;
...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mCallback = (OnCategorySelected) activity;
}
但是,當我嘗試實例mCallback在類中,我得到一個NullPointerException當接口調用。非工作代碼看起來像這樣(沒有覆蓋的onAttach()):
public class ExercisesCatsFragment extends Fragment {
OnCategorySelected mCallback = (OnCategorySelected) this.getActivity();
有誰知道這背後的原因是什麼?父級活動是FragmentActivity;這可能是錯誤嗎?
謝謝
您正在'Fragment'的主體中調用'this.getActivity()' - 此時它沒有附加到'Activity'。只要按照您在第一個代碼塊中顯示的方式進行操作即可。 – Squonk
你說得對。它完全放棄了我的想法。請將此作爲答案提交,以便我可以評價/接受它:) – LoneDuck
我已將我的評論轉換爲答案。很高興幫助。 – Squonk