java为什么活动和片段之间的通信需要onAttach()?
为什么活动和片段之间的通信需要onAttach()
方法
对于以下代码:-
public class SimpleFragment extends Fragment {
Fragmentinterface interf;
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof Fragmentinterface) {
interf = (Fragmentinterface) context;
} else {
throw new ClassCastException("exception message");
}
}
为什么interf = (Fragmentinterface) context;
有必要将活动转换为接口引用?
为什么Mainactivity实现接口并用方法体调用接口方法,而这个方法也用接口引用在fragment中调用,以在活动和fragment之间进行通信并不是那么简单
作为一个新手,我可能缺乏一些核心的java知识。。。请解释一下
# 1 楼答案
因为我们只想访问特定接口的方法,而不是
MainActivity
的所有方法interf
是null
,首先我们需要初始化它,在这里我们希望将数据传递给活动,通常数据会被其他活动方法进一步使用,尽管您可以使用lambdas、匿名类作为参数,但它应该在活动范围内完成,范围定义边界,通信的一种方式是公共方法注意:当上下文准备好使用时,您可以稍后在其他生命周期方法中执行强制转换,尽管onAttach是第一个使用
context
的地方