Android—3分钟你也能学会AlertDialog对话框
在Android开发中,少不了AlertDialog对话框的使用,也是至关重要的一个功能。AlertDialog的构造方法被声明为protected,所以我们不能使用new来创建AlertDialog对象。
确定取消对话框
DialogInterface.BUTTON_NEGATIVE 设立为取消按钮
DialogInterface.BUTTON_NEUTRAL 设立为确定按钮
DialogInterface.BUTTON_POSITIVE 设立为中立按钮
/******** 取消、确认按钮对话框*********/
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog alertDialog = new AlertDialog.Builder(AlertDialog_1.this).create(); //创建对象
alertDialog.setTitle("标题区");
alertDialog.setMessage("内容区");
alertDialog.setIcon(R.drawable.ic_launcher_foreground); //图片区
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", new DialogInterface.OnClickListener() { //DialogInterface.BUTTON_NEGATIVE 设立为取消按钮
@Override //并对其设置点击监听
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialog_1.this,"您点击了否按钮",Toast.LENGTH_LONG).show();
}
});
alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL,"确定", new DialogInterface.OnClickListener() { //DialogInterface.BUTTON_NEUTRAL 设立为确定按钮
@Override //并对其设置点击监听
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialog_1.this,"您点击了确定按钮",Toast.LENGTH_LONG).show();
}
});
alertDialog.show(); //显示对话框
}
});
带列表的对话框
/*****************列表对话框************************/
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String subject[]=new String[]{"语文","数学","英语"};
AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
builder.setIcon(R.drawable.ic_launcher_foreground);
builder.setTitle("选择你喜欢的科目:");
builder.setItems(subject, new DialogInterface.OnClickListener() { //设置监听
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialog_1.this,"您选择了"+subject[which],Toast.LENGTH_LONG).show();
}
});
builder.create().show(); //创建、显示对话框
}
});
单选列表对话框
/*****************单选列表对话框************************/
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String subject[]=new String[]{"语文","数学","英语"};
AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
builder.setIcon(R.drawable.ic_launcher_foreground);
builder.setTitle("选择你喜欢的科目:");
builder.setSingleChoiceItems(subject, 0,new DialogInterface.OnClickListener() { //默认选择0
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialog_1.this,"您选择了"+subject[which],Toast.LENGTH_LONG).show();
}
});
builder.setPositiveButton("确定",null); //添加最后的确定按钮,暂不设置监听
builder.create().show();
}
});
多选列表对话框
/*****************多选列表对话框************************/
button4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String subject[]=new String[]{"语文","数学","英语"};
final boolean bool[]=new boolean[]{true,false,false}; //为word设置选中状态
AlertDialog.Builder builder =new AlertDialog.Builder(AlertDialog_1.this);
builder.setIcon(R.drawable.ic_launcher_foreground);
builder.setTitle("选择你喜欢的科目:");
builder.setMultiChoiceItems(subject, bool, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
bool[which]=isChecked; //改变列表项的状态
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String str="";
for (int i=0;i<bool.length;i++){
if (bool[i]) str=str+" "+subject[i];
}
if(!str.equals(""))
Toast.makeText(AlertDialog_1.this,str,Toast.LENGTH_LONG).show();
}
});
builder.create().show();
}
});
}
}