一、什么是AlertDialog对话框 ?
在Android中,AlertDialog可以为当前的界面上显示一个对话框,而且产生的对话框是在所有界面元素上面的,能够覆盖掉其余组件,所以AlertDialog一般是用于提示一些非常重要的信息或者警告内容。
二、如何使用?
AlertDialog的功能十分强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的列表对话框。
对话框区域通常被分为四个区域,分别是图标区、标题区、内容区、按钮区域。
1.显示带确定、取消按钮的对话框
效果图:
单击按钮后:
对话框隐藏,提示单击信息。
实现方法,在XML文件中新建一个按钮,在Java文件中添加单击事件响应
1. button1.setOnClickListener(new View.OnClickListener() { 2. @Override 3. public void onClick(View v) { 4. AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); 5. alertDialog.setIcon(R.mipmap.advise); 6. alertDialog.setTitle("标题"); 7. alertDialog.setMessage("具体文本"); 8. 9. alertDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "否", new DialogInterface.OnClickListener() { 10. @Override 11. public void onClick(DialogInterface dialog, int which) { 12. Toast.makeText(MainActivity.this, "您单击了否按钮", Toast.LENGTH_SHORT).show(); 13. } 14. }); 15. 16. alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, "是", new DialogInterface.OnClickListener() { 17. @Override 18. public void onClick(DialogInterface dialog, int which) { 19. Toast.makeText(MainActivity.this, "您单击了是按钮 ", Toast.LENGTH_SHORT).show(); 20. } 21. }); 22. alertDialog.show(); 23. } 24. });
2. 显示带列表的对话框
效果展示:
单击按钮后:
对话框隐藏,提示单击信息。
1. button2.setOnClickListener(new View.OnClickListener() { 2. @Override 3. public void onClick(View v) { 4. 5. final String[] items = new String[]{"选项1", "选项2", "选项3","选项4"}; 6. 7. AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 8. builder.setIcon(R.mipmap.advise1); 9. builder.setTitle("请选择选项:"); 10. 11. builder.setItems(items, new DialogInterface.OnClickListener() { 12. @Override 13. public void onClick(DialogInterface dialog, int which) { 14. Toast.makeText(MainActivity.this, 15. "您选择了" + items[which], Toast.LENGTH_SHORT).show(); 16. } 17. }); 18. builder.create().show(); 19. } 20. });
3. 显示带单选列表项的对话框
效果展示:
单击后:
Java逻辑代码部分:
1. button3.setOnClickListener(new View.OnClickListener() { 2. @Override 3. public void onClick(View v) { 4. 5. final String[] items = new String[]{"扎克伯格", "乔布斯", "拉里.埃里森", "安迪.鲁宾", "马云"}; 6. 7. AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 8. builder.setIcon(R.mipmap.advise2); 9. builder.setTitle("如果让你选择,你最想做哪一个:"); 10. builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() { 11. @Override 12. public void onClick(DialogInterface dialog, int which) { 13. Toast.makeText(MainActivity.this, 14. "您选择了" + items[which], Toast.LENGTH_SHORT).show(); 15. } 16. }); 17. builder.setPositiveButton("确定", null); 18. builder.create().show(); 19. } 20. });
4. 显示带多选列表项的对话框
效果展示:
单击后:
点击确定后,显示:
Java逻辑代码:
1. button4.setOnClickListener(new View.OnClickListener() { 2. @Override 3. public void onClick(View v) { 4. checkedItems = new boolean[]{false, true, false, true, false}; 5. //各列表项要显示的内容 6. items = new String[]{"开心消消乐", "球球大作战", "欢乐斗地主", "梦幻西游", "超级玛丽"}; 7. 8. AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); 9. builder.setIcon(R.mipmap.advise2); 10. builder.setTitle("请选择您喜爱的游戏:"); 11. builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { 12. @Override 13. public void onClick(DialogInterface dialog, int which, boolean isChecked) { 14. checkedItems[which] = isChecked; 15. 16. } 17. }); 18. 19. builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { 20. @Override 21. public void onClick(DialogInterface dialog, int which) { 22. String result = ""; 23. for (int i = 0; i < checkedItems.length; i++) { 24. if (checkedItems[i]) { 25. result += items[i] + "、"; 26. } 27. } 28. if (!"".equals(result)) { 29. result = result.substring(0, result.length() - 1); 30. Toast.makeText(MainActivity.this, 31. "您选择了[ " + result + " ]", Toast.LENGTH_LONG).show(); 32. } 33. } 34. }); 35. builder.create().show(); 36. } 37. });
三、总结
在Android中,如果需要使用 对话框 组件,来实现一定的功能,就需要用到 AlertDialog 。
本文主要总结了 AlertDialog 的四种常用方法,以便后续不时之需。