フラグメント内にインターフェイスを作成し、それを親アクティビティに実装しました。
コードが次のようになると、すべてが完全に機能します。
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 です。これが原因でしょうか?
ありがとうございました