问题
I followed the official documentation: https://developer.android.com/guide/components/fragments#Creating. It provides the steps to set up a fragment.
First, create the fragment class (`extends Fragment')
Then create its layout (and, in fragment class'
OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
, return one of theView' of this layout using
inflate`)Choose an activity that will use this fragment. This activity must
extends FragmentActivity
and in order to use the fragment, it will contain calls toFragmentManager
's methods,FragmentTransaction
'smethods, etc.
However, doing this results in a "fatal exception":
java.lang.lang.lang.RuntimeException: com.example...TheActivity@efebfcf must implement OnFragmentInteractionListener
Questions
Why doesn't the documentation mention this problem?
In
TheActivity
(which uses the fragmentTheFragment
), I implementedTheFragment.OnFragmentInteractionListener
(yes,TheFragment.OnFr...
!). It's weird, isn't it? In addition, this listener provides this method:onFragmentInteraction(Uri uri)
but what is it supposed to contain?
回答1:
I'm pretty sure in the Fragment's onAttach
method, it will say that the parent activity must implement the OnFragmentInteractionListener
. This is to facilitate Fragment to Activity communication.
This is not required and the check in onAttach
can be removed. In fact if you are not doing anything in the onAttach
method then the whole method can be removed from the Fragment
来源:https://stackoverflow.com/questions/52343383/why-is-it-necessary-to-implement-onfragmentinteractionlistener-when-setting-up-a