Activity与Fragment通过接口回调进行通信
现在有如下‘Activity‘中包含两个Fragment,Fragment_first和Fragment_second,
Fragment_first中包含两个按钮,当按下按钮后,fragment_second中的TextView控件内容发生改变。
1.在Fragment_first中定义一个接口:
public iterface FragmentFirstInterface{
void fragment_callback(String str);
}
2.在Activity中实现此接口,
public class MainActivity extends AppCompatActivity implements FragmentFirst.FragmentFirstInterface {
...
@Override
public void fragment_first_callback(String str) {
...
}
}
3.在Fragment_first的onAttach()
中得到 此fragmentFirstInterface对象:
这时的fragmentFirstInterface对象是activity的context对象
@Override
public void onAttach(Context context) {
super.onAttach(context);
fragmentFirstInterface = (FragmentFirstInterface) context;
}
4.在Fragment_first点击事件中:
@Override
public void onClick(View arg0) {
/*
* 调用回调接口函数
* */
fragmentFirstInterface.fragment_first_callback("btn1");
}
});
这样就调用到Activity中的实现了
5.在Activity中对Fragment_second修改,实现了用接口控制fragment的修改