(Android)Fragment的基础入门学习笔记---Fragment与Activity通信的俩种方式

Fragment入门学习笔记

fragment与Activity通信

在一个容器activity中,如果要通过fragment对activity中的控件进行修改,有俩种方式

利用getActivity

首先在容器activity中创建方法

 public  void  setData(String text){
 		//mTvTitle为Activity中一个TextView
        mTvTitle.setText(text);
    }

在fragment中调用getActivity并强制转换为目标activity调用上述方法
((ContainerActivity)getActivity()).setData(“你好”);

((ContainerActivity)getActivity()).setData("你好");

即可完成修改activity中控件的值

利用回调

在Fragment中写一个内部接口类

  public  interface IOMessageClick{
        void onClick(String text);
    }

在fragment中通过外部传入实现接口

   private  IOMessageClick ioMessageClick;

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        try {
            ioMessageClick = (IOMessageClick) context;
        }catch (ClassCastException e){
            throw new ClassCastException("Activity 需要实现IOMessageClickj接口");
        }

    }

activity实现fragment中定义的接口

public void onClick(String text) {
       mTvTitle.setText(text);
   }

fragment中调用实现通信

ioMessageClick.onClick("你好");

你可能感兴趣的:(fragment,Android,frament)