为什么在设置fragment的时候需要实现OnFragmentInteractionListener?
Why is it necessary to implement OnFragmentInteractionListener when setting up a fragment?
我按照官方文档:https://developer.android.com/guide/components/fragments#Creating。它提供了设置片段的步骤。
首先,创建片段class(`extends Fragment')
然后创建它的布局(并且,在片段 class' OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
, return View' of this layout using
inflate` 之一)
选择将使用该片段的 activity。此 activity 必须 extends FragmentActivity
并且为了使用该片段,它将包含对 FragmentManager
的方法、FragmentTransaction
的方法等的调用。
但是,这样做会导致 "fatal exception":
java.lang.lang.lang.RuntimeException: com.example...TheActivity@efebfcf must implement OnFragmentInteractionListener
问题
为什么文档没有提到这个问题?
在TheActivity
(使用片段TheFragment
)中,我实现了TheFragment.OnFragmentInteractionListener
(是的,TheFragment.OnFr...
!)。很奇怪,不是吗?另外,这个监听器提供了这个方法:onFragmentInteraction(Uri uri)
但是它应该包含什么?
我很确定在 Fragment 的 onAttach
方法中,它会说父 activity 必须实现 OnFragmentInteractionListener
。这是为了方便 Fragment 与 Activity 通信。
这不是必需的,可以删除 onAttach
中的检查。事实上,如果你没有在 onAttach
方法中做任何事情,那么整个方法可以从 Fragment
中删除
我按照官方文档:https://developer.android.com/guide/components/fragments#Creating。它提供了设置片段的步骤。
首先,创建片段class(`extends Fragment')
然后创建它的布局(并且,在片段 class'
OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
, returnView' of this layout using
inflate` 之一)选择将使用该片段的 activity。此 activity 必须
extends FragmentActivity
并且为了使用该片段,它将包含对FragmentManager
的方法、FragmentTransaction
的方法等的调用。
但是,这样做会导致 "fatal exception":
java.lang.lang.lang.RuntimeException: com.example...TheActivity@efebfcf must implement OnFragmentInteractionListener
问题
为什么文档没有提到这个问题?
在
TheActivity
(使用片段TheFragment
)中,我实现了TheFragment.OnFragmentInteractionListener
(是的,TheFragment.OnFr...
!)。很奇怪,不是吗?另外,这个监听器提供了这个方法:onFragmentInteraction(Uri uri)
但是它应该包含什么?
我很确定在 Fragment 的 onAttach
方法中,它会说父 activity 必须实现 OnFragmentInteractionListener
。这是为了方便 Fragment 与 Activity 通信。
这不是必需的,可以删除 onAttach
中的检查。事实上,如果你没有在 onAttach
方法中做任何事情,那么整个方法可以从 Fragment