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("你好");