我曾经使用AlertDialog.Builder
创建一个警告对话框并设置对话框按钮的onClickListener;但最近我试过
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder
.setTitle("xxx")
.setPositiveButton("xxx", null)
.setView(getLayoutInflater().inflate(R.layout.alert_dlg, null));
alertDlg=builder.create();
alertDlg.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do sth.
}
}
,alertDlg 不会自动关闭,我必须在方法alertDlg.dismiss();
//do sth.
之后手动添加onClick
。
我知道builder.setPositiveButton("xxx", new OnClickListener(){})
是一种很好的方法,但我只是想知道上面的代码有什么问题,这是Android上的一个错误吗?
答案 0 :(得分:0)
在使用AlertDialog.Builder
或setPositiveButton
甚至setNegativeButton
进行设置之前,您无法在setNeutralButton
课程中获取按钮。
如果该按钮不存在,则返回null。
根据Android文档:
<强> getButton()强>
Gets one of the buttons used in the dialog.
If a button does not exist in the dialog, null will be returned.
参考:http://developer.android.com/reference/android/app/AlertDialog.html#getButton(int)
答案 1 :(得分:0)
因为View onClickListener与DialogInterface的onClickListener的不同之处在于它从视图中删除了父视图。