一、AlertDialog的实现方式

  1. 1.AlertDialog.Builder builder=new AlertDialog.Builder(context); 构建Dialog的各种参数<br /> 2.Builder.setIcon(int iconId); 添加ICON<br /> 3.Builder.setTitle(CharSequence title); 添加标题<br /> 4.Builder.setMessage(CharSequence message); 添加信息<br /> 5.Builder.setView(View view); 设置自定义布局<br /> 6.Builder.create(); 创建Dialog<br /> 7.Builder.show(); 显示对话框<br /> 8.setPositiveButton 确定按钮<br /> 9.setNegativeButton 取消按钮<br /> 10.setNeutralButton 中间按钮

二、对话框的实现

  1. 1.布局activity_main.xml代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity">
  8. <Button
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:text="显示对话框"
  12. android:onClick="dialog"
  13. />
  14. </LinearLayout>
  1. 2.自定义对话框布局dialog_view.xml代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity"
  8. android:orientation="horizontal"
  9. android:background="#9344A8">
  10. <ImageView
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:src="@mipmap/ic_launcher"
  14. />
  15. <TextView
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:text="哈哈,今天天气真好"
  19. android:textSize="30dp"
  20. />
  21. </LinearLayout>
  1. 3.MainActivity文件代码
  1. package com.example.myalertdialog;
  2. import androidx.appcompat.app.AlertDialog;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.content.DialogInterface;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Toast;
  8. public class MainActivity extends AppCompatActivity {
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. }
  14. //1.创建按钮点击出现的对话框方法
  15. public void dialog(View view) {
  16. //5.创建自定义对话框布局
  17. View view1 = getLayoutInflater().inflate(R.layout.dialog_view, null);
  18. //2.创建对话框的构建器
  19. AlertDialog.Builder builder=new AlertDialog.Builder(this);
  20. builder.setIcon(R.mipmap.ic_launcher)
  21. .setTitle("我是对话框")
  22. .setMessage("今天天气怎么样啊")
  23. //4.创建自定义布局
  24. .setView(view1)
  25. //3.创建对话框的确定按钮、取消按钮和中间按钮
  26. .setPositiveButton("确定按钮", new DialogInterface.OnClickListener() {
  27. @Override
  28. public void onClick(DialogInterface dialog, int which) {
  29. Toast.makeText(MainActivity.this, "确定按钮", Toast.LENGTH_SHORT).show();
  30. }
  31. })
  32. .setNegativeButton("取消按钮", new DialogInterface.OnClickListener() {
  33. @Override
  34. public void onClick(DialogInterface dialog, int which) {
  35. Toast.makeText(MainActivity.this, "取消按钮", Toast.LENGTH_SHORT).show();
  36. }
  37. })
  38. .setNeutralButton("中间按钮", new DialogInterface.OnClickListener() {
  39. @Override
  40. public void onClick(DialogInterface dialog, int which) {
  41. Toast.makeText(MainActivity.this, "中间按钮", Toast.LENGTH_SHORT).show();
  42. }
  43. })
  44. .create()
  45. .show();
  46. }
  47. }
  1. 4.效果图:<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/1574587/1621954886980-ef60068c-4582-4210-80ba-9d2213da0138.png#clientId=u91c9e385-00c5-4&from=paste&height=409&id=ucc9ae46e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=409&originWidth=866&originalType=binary&size=89127&status=done&style=none&taskId=u0030d5d7-53a0-45f1-8350-d85b816531f&width=866)