首先,我先申明下,这个 dialog 只是为了更好的理解接口回调。
一个对话框,有两个按钮,一个确定,和一个取消
1,声明个接口,接口有两个方法
public interface DialogInterface {
public void ok();
public void cancel();
}
2,自定义一个 dialog,在这个 dialog 中,有两个按钮,按钮的点击事件分别是接口的两个方法
具体的点击事件响应,谁实现了这个接口对象,就执行谁的事件响应。
public class MyDialog extends Dialog implements android.view.View.OnClickListener{
private View mDialogView;
private DialogInterface callback;
private TextView textshow;
public MyDialog(Context context) {
super(context,R.style.VerifyDialog);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mDialogView = inflater.inflate(R.layout.layout_mydialog, null);
this.addContentView(mDialogView, new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
initView();
}
private void initView(){
mDialogView.findViewById(R.id.ok).setOnClickListener(this);
mDialogView.findViewById(R.id.diss).setOnClickListener(this);
textshow=(TextView) mDialogView.findViewById(R.id.textshow);
}
public void setTextshow(String text){
//设置title
textshow.setText(text);
}
public void bindDialogInterface(DialogInterface callback){
//设置回调
this.callback=callback;
}
//这是dialog中两个按钮的点击事件
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.ok:
callback.ok();
break;
case R.id.diss:
callback.cancel();
break;
}
}
}
3,实现该接口的两个方法
//这是第一个接口的实例化对象,,,执行业务逻辑 1
DialogInterface button1CallBack=new DialogInterface() {
@Override
public void ok() {
Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_LONG).show();
dialog.dismiss();
}
@Override
public void cancel() {
dialog.dismiss();
}
};
//这是第二个接口的实例化对象,,执行业务逻辑2
DialogInterface button2CallBack=new DialogInterface() {
@Override
public void ok() {
Toast.makeText(MainActivity.this, "恢复成功", Toast.LENGTH_LONG).show();
dialog.dismiss();
}
@Override
public void cancel() {
dialog.dismiss();
}
};
通过dialog.bindDialogInterface(DialogInterface)进行接口绑定
4,以上就是一个 dialog 的回调的例子,,这个例子不是为了写 dialog,,而是为了说明,通过接口回调,显示多个接口的实例化,实现不同的功能。
在安卓的机制中,view 的点击事件其实都是通过这种接口回调的方式实现的
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于