点击Fragment中“给Activity传递消息”按钮,使Activity中TextView中原本的text=“hello”换成“你好”
首先在Fragment的java文件中写一个接口,通过回调接口实现信息传递
public interface IOnMessageClick{ //通过回调接口实现给Activity传递消息
void onClick(String text);
}
使Activity实现这个接口
public class ContainerActivity extends AppCompatActivity implements AFragment.IOnMessageClick {
public void onClick(String text) {
mtvTitle.setText(text);
}
}
在Fragment中实现OnAttach方法
private IOnMessageClick listener; //首先声明一个接口
public void onAttach(Context context) { //当Fragment被依附到Activity中时,会调用此方法
super.onAttach(context);
try {
listener=(IOnMessageClick)context; //获得接口信息
}catch (ClassCastException e){
throw new ClassCastException("Activity必须实现IOnMessageClick接口");
}
}
在Fragment中给按钮添加点击事件
mbtnMessage=(Button)view.findViewById(R.id.btn_message);
mbtnMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onClick("你好");
}
});
效果显示: