为什么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 实现接口并使用方法主体调用接口方法,并且此方法也在具有接口引用的片段中调用以在活动和片段之间进行通信?
作为一个新手,我可能缺乏一些核心的Java知识......请解释一下
为什么 interf = (片段接口( 上下文;将活动转换为 接口引用是必要的吗?
因为我们只想访问特定接口的方法,而不是所有方法MainActivity
为什么 Mainactivity 实现接口和 使用方法主体调用接口方法
interf
是null
,首先我们需要初始化它,这里我们想将数据传递给活动,并且通常数据被其他活动方法进一步使用,尽管您可以使用lambdas,匿名类作为参数,但它应该在活动范围内完成,Scope定义了边界,一种通信方式是公共方法。
注意:当上下文准备好使用时,您可以稍后在其他生命周期方法中进行转换,尽管 onAttach 是使用该context
的第一个位置。