在Android中很多操作后都要调用一个对话框,所以封装了一个方法,大体如下:
protected void alertDialog(Context mContext, String title, String message)
{
// 构造对话框
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(title);
builder.setMessage(message);
// 确定
builder.setPositiveButton(R.string.i_know, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
Dialog noticeDialog = builder.create();
noticeDialog.show();
}
一个典型的 alert 对话框,但有时的可能需求:当用户点击确定按钮后,还需要做点其他的事情,所以我想在 参数当中传递一个对象过来,在click后调用其中的方法,我试着写了一个类:
class DialogButton{
String bt2 = "";
public void ok(){
}
public void cancel(){}
}
然后把之前的方法改成这样;
protected void alertDialog(Context mContext, String title, String message, final DialogButton button)
{
// 构造对话框
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(title);
builder.setMessage(message);
// 确定
builder.setPositiveButton(R.string.i_know, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
button.ok();
dialog.dismiss();
}
});
Dialog noticeDialog = builder.create();
noticeDialog.show();
}
后面调用的时候重写 DialogButton 这里面的方法,因为 alertDialog中 变成了 final DialogButton,所以传过来无效,请问大侠们有什么好的方法 ?
如果想后期可以重写,你在这里可以将DialogButton设置成一个接口啊。然后在调用函数传入这个参数的时候(也就是新建DialogButton的时候),来自定义dialogbutton的ok函数和cancel函数的具体实现啊。类似于这样: