首先,我先申明下,这个 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 的点击事件其实都是通过这种接口回调的方式实现的
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于