AlerDialog在一个子类可以显示一个对话框,两个或三个按钮。如果你只是想显示一个字符串在这个对话框中,使用setMessage()方法。如果你想显示一个更复杂的视图,查找FrameLayout叫做“定制”并添加你的视图:
对AlerDialog是现实了、普通对话框,列表对话框,单选对话框,以及多选对话框。在java文件里一定要写AlerDialog的实现方法
builder.create().show();不然AlerDialog不起作用,但是程序也不报错,很难发现。
activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.a13468.mydemo18_alerdialog.MainActivity"
>
<Button
android:id="@+id/btn1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#0c13ed"
android:background="#00ff8c"
android:textSize="25sp"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:onClick="doBtn1"
android:text="显示带取消,确定按钮的对话框"/>
<Button
android:id="@+id/btn2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ed5e0c"
android:background="#500de2"
android:textSize="30sp"
android:onClick="doBtn2"
android:layout_marginBottom="20dp"
android:text="显示带列表的对话框"/>
<Button
android:id="@+id/btn3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#0cdeed"
android:background="#ddff00"
android:textSize="30sp"
android:onClick="doBtn3"
android:layout_marginBottom="20dp"
android:text="显示带单选列表项的对话框"/>
<Button
android:id="@+id/btn4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#0cdeed"
android:background="#ff2f00"
android:textSize="30sp"
android:onClick="doBtn4"
android:layout_marginBottom="20dp"
android:text="显示带多选列表的对话框"/>
</LinearLayout>
MainActivity.java文件:
package com.example.a13468.mydemo18_alerdialog;
/**
* AlerDialog实现对话框
*/
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=findViewById(R.id.btn1);
btn2=findViewById(R.id.btn2);
btn3=findViewById(R.id.btn3);
btn4=findViewById(R.id.btn4);
/**
* 显示列表对话框
*/
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建AlerDialgo方法且实例化
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
final String[]items=new String[]{"百度","腾讯","阿里巴巴","华为"};//创建列表类容
builder.setIcon(R.mipmap.logo);//添加图标
builder.setTitle("你喜欢哪家公司?");//添加开头
//添加列表项
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你选择了"+items[i]+"公司", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
});
/**
* 显示带单选按钮的列表对话框
*/
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//创建AlerDialog方法且实例化
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
final String items[]=new String[]{"赵","钱","李","孙","秦"};//创建列表内容
builder.setIcon(R.mipmap.logo);//添加图标
builder.setTitle("您姓什么");//添加标题
builder.setPositiveButton("确定",null);//添加确定按钮,null表示没有对按钮设置监听
//添加列表项
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你选择的姓是【"+items[i]+"】", Toast.LENGTH_SHORT).show();
}
});
builder.create().show();
}
});
/**
* 显示复选按钮对话框
*/
btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder=new AlertDialog.Builder(MainActivity.this);
final boolean Clickitems[]=new boolean[]{false,true,false,false,true};
final String items[]=new String[]{"电影","跑步","看书","唱歌","编程"};
builder.setIcon(R.mipmap.logo);
builder.setTitle("你有什么爱好?");
//添加列表项
builder.setMultiChoiceItems(items,Clickitems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
Clickitems[i]=b;//改变被操作列表项的状态
}
});
//添加确定按钮
builder.setPositiveButton("确定", new DatePickerDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String result="";//记录结果
for(int a=0;a<Clickitems.length;a++){
if(Clickitems[a]){
result+=items[a];//把列表类容,添加到result中
}
}
if(!"".equals(result)){
Toast.makeText(MainActivity.this, "你选择了【"+result+"】", Toast.LENGTH_SHORT).show();
}
}
});
builder.create().show();
}
});
}
/**
* 取消确定按钮对话框(普通对话框)
* @param v
*/
public void doBtn1(View v ){
AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this).create();//创建AlerDialog对象且实例化
alertDialog.setIcon(R.mipmap.logo);//设置图标
alertDialog.setTitle("AlerDialog");//设置标题
alertDialog.setMessage("你真的要退出吗");//设置内容
alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "您好狠心!!", Toast.LENGTH_SHORT).show();
}
});//确定按钮
alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "看来您是爱我的", Toast.LENGTH_SHORT).show();
}
});//添加取消按钮
alertDialog.show();
}
}