[android] must implement OnFragmentInteractionListenerエラー

must implement OnFragmentInteractionListenerエラー

recyclerViewでItemのタップ処理を実装すると
must implement OnFragmentInteractionListenerエラー
もしくは
must implement OnListFragmentInteractionListenerエラー
がでることがある

こちらは
fragmentの

@Override
    public void onAttach(Context context) {
        super.onAttach(context);
        if (context instanceof OnListFragmentInteractionListener) {
            mListener = (OnListFragmentInteractionListener) context;
        } else {
            throw new RuntimeException(context.toString()
                    + " must implement OnListFragmentInteractionListener");
        }
    }

が反応しているためである
要は親のこのFragmentを呼び出している親ActivityにOnListFragmentInteractionListenerを継承していないことが理由

なのでActivityにOnListFragmentInteractionListenerを継承してあげれば良い

親Activity

public class MainActivity extends AppCompatActivity implements ItemFragment.OnListFragmentInteractionListener {

・・・


}

*ItemFragmentというFragmentにOnListFragmentInteractionListenerというinterfaceが実装されている必要がある

またinterfaceを継承した時に「関数が書かれていない」みたいなエラーが表示される場合は、継承したInterfaceが持っている関数をActivityにoverRideしていないので、ちゃんとInterfaceが持っている関数をすべてoverRideすること

親Activity

public class MainActivity extends AppCompatActivity implements ItemFragment.OnListFragmentInteractionListener {

//onListFragmentInteraction interfaceの関数「onListFragmentInteraction」をoverRide
@Override
    public void onListFragmentInteraction(DummyContent.Dummy uri){
        //you can leave it empty
        switch (uri.id){
            case "0":
                //処理
                break;
            case "1":
                //処理
                break;
            default:
        }
    }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です