以前学习不认真,接口回调每次都用得云里雾里的,今天好好的梳理了下。接口回调使用的时候很简单,比如常用到的button.setOnClickListener(new onclicklistener(){
void onclick(){}});就是一个来自于android.view.View.OnClickListener类的接口回调事件。使用分三步走
public class ContextFragment4 extends Fragment{
private TextView text;
private oncallBack oncallBack;
private String str;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.contextfragment4, container, false);
text= (TextView) view.findViewById(R.id.text);
oncallBack.callBack();
text.setText(str);
return view;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public void setonCallBackListener(oncallBack cBack) {
this.oncallBack=cBack;
}
public interface oncallBack{
void callBack();
}
}
创建一个双方约定的接口oncallBack的接口,接口定义了一个callback()的方法供调用,这里我提供了一个setoncallBackListener的方法来设置接口,其实也可以用其他方法,无非就是将我们自己定义的
private oncallBack oncallBack;这个oncallBack变量给赋值,赋值完毕后我们就可以在
ContextFragment4
类需要的地方使用
oncallBack.callBack();而这个方法的具体实现是在
<span style="white-space:pre"> </span>c4=new ContextFragment4();
c4.setonCallBackListener(new oncallBack() {
@Override
public void callBack() {
c4.setStr("我来自于activity的消息");
}
});
里面进行定义的,我理解的就是我在A类中定义怎么做,在B类中定义什么时候做这件事。