通过按键控件设置自身的点击响应
在前面提到,使用setNagtiveButton()
、setNeutralButton()
和setPositiveButton()
方法设置按键控件的单击响应时,会关闭AlertDialog对话框。而直接通过按键控件设置自身的点击响应则不会关闭AlertDialog对话框。
1.1 设置按键显示内容
首先通过上述三个方法只设置按键显示的内容,而不设置其响应例程。
builder.setPositiveButton("返回上一层", null);
其中,builder
是AlertDialog.Builer类
的对象,setPositiveButton()
方法的第一个参数为按键显示的内容,第二个参数为点击响应例程。
1.2 设置按键点击响应例程
接下来获取AlertDialog类对话框中Positive Button(右键)控件,然后通过该控件设置其点击响应例程。
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
其中,dialog
是AlertDialog类
的对象,可以通过AlertDialog.Builder类的对象获取。通过AlertDialog类的对象调用getButton()
方法获取指定的Button,该方法的参数是指定Button的ID,而AlertDialog.BUTTON_POSITIVE
是右键控件的ID。在获取了Button之后,调用Button类的setOnClickListener()
方法设置按键的点击响应例程。
通过该方法设置的点击响应例程,点击按键之后,不会关闭AlertDialog对话框。
1.3 关闭对话框
如果需要关闭AlertDialog对话框,可通过调用dismiss()
方法实现。
dialog.dismiss();
1.4 Example
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setNeutralButton(RUtil.getString(this, R.string.clear), null);
AlertDialog dialog = builder.create();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> {
//...
});