fragment 给 activity 传数据

    //Fragment向Activity传值(接口回调)
    //1.定义一个接口,在该接口中声明一个用于传递数据的方法
    //2.让Activity实现该接口,然后重写回调方法,获取传入的值,然后做处理
    //3.在自定义Fragment中,声明一个回调接口的引用
    //4.在onAttach中法中,为第三步的引用赋值
    //5.用引用调用传递数据的方法

在fragment.java

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_fragment3, container, false);
    }

    private MyListener ml;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        ml = (MyListener) getActivity();
        ml.sendMsg("消息");
    }

    public interface  MyListener{
        public void sendMsg(String msg);
    }

在mainactivity.java 实现接口

public class MainActivity extends AppCompatActivity implements Fragment3.MyListener {

    @Override
    public void sendMsg(String msg) {
        Log.e(TAG,"Fragment传回的数据:"+msg);
    }
}

一个示例:

https://www.jianshu.com/p/fce1e2b011ae

 

posted @ 2020-07-02 20:09  于光远  阅读(262)  评论(0编辑  收藏  举报