Android 如果getButton和setOnClickListener
我曾经使用Android 如果getButton和setOnClickListener,android,android-alertdialog,onclicklistener,Android,Android Alertdialog,Onclicklistener,我曾经使用AlertDialog.Builder创建一个警报对话框,并设置对话框按钮的onClickListener;但最近当我尝试 AlertDialog.Builder builder=new AlertDialog.Builder(this); builder .setTitle("xxx") .setPositiveButton("xxx", null) .setView(getLayoutInflater().inflate(R.layout.alert_dlg, null)); a
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.disease()在方法onClick
中,在//做某事之后手动执行code>
我知道builder.setPositiveButton(“xxx”,newonClickListener(){})
是个好方法,但我只想知道上面的代码有什么问题,这是Android上的一个bug吗?在使用setPositiveButton
或setNegativeButton
甚至setNeutralButton
设置按钮之前,您无法在AlertDialog.Builder
类中获取按钮。
如果按钮不存在,它将返回null
根据Android文档:
getButton()
获取对话框中使用的按钮之一。
如果对话框中不存在按钮,则返回null。
参考:因为视图onClickListener与DialogInterface的onClickListener不同,它从视图中删除父视图。你说得对,它是不同的。但事实并非如此。否则,他永远无法正确重写onClick()方法。编译错误肯定会发生。我使用了builder.setPositiveButton(“xxx”,null)
来设置正按钮,因为我在帖子中编辑了我的代码。我只想晚一点设置onClickListener如果我的代码返回null,将出现NullPointerException我想稍后设置侦听器的原因是我想在侦听器中处理R.layout.alert\u dlg中的小部件,而布局在builder.create()之前还没有设置,如果build.show()
直接,如何处理小部件?