有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    Why interf = (Fragmentinterface) context; casting of activity to interface refrence is necessary?

    因为我们只想访问特定接口的方法,而不是MainActivity的所有方法

    Why it is not as simple that Mainactivity implements interface and calls interface method with method body

    interfnull,首先我们需要初始化它,在这里我们希望将数据传递给活动,通常数据会被其他活动方法进一步使用,尽管您可以使用lambdas、匿名类作为参数,但它应该在活动范围内完成,范围定义边界,通信的一种方式是公共方法

    注意:当上下文准备好使用时,您可以稍后在其他生命周期方法中执行强制转换,尽管onAttach是第一个使用context的地方