1.首先,新建一个安卓项目,项目名称为DialogTest1,首先,进行界面布局,打开布局文件res下的layout文件夹下的activity_main.xml文件,附上activity_main的代码:

<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"><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button1"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/button2"/></LinearLayout>

2.我先把所要用到的字符串资源文件strings.xml文件的代码附上,这个文件放在res下的values文件夹下:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">DialogTest1</string><string name="hello_world">Hello world!</string><string name="action_settings">Settings</string><string name="button1">点击按钮显示带列表的对话框</string><string name="button2">点击按钮设置自己所布局的对话框</string><string name="textView">作者:小熊。我是一个快乐的小熊,在程序的世界里慢慢的摸索,我必须提升自己的编程能力,充实自己,让我们一起加油,我们都可以的!!!</string>
</resources>

3.在布局文件activity_main.xml文件中有个按钮是点击按钮设置自己所布局的对话框,所以我在res目录下的layout文件夹下新建一个Android xml文件,名字为item,新建后打开item.xml文件,在这里我们可以把想显示在对话框的东西放上去,这里我只放了一个TextView文本框控件,你也可以添加EditText编辑框控件,但这要根据你自己的需要,用不到的话就别添加了,附上item.xml文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="@string/textView"android:textColor="#99CCFF"/></LinearLayout>

4.接下来就该写点击按钮时显示相应的对话框了,打开src文件夹包下的MainActivity.java文件,附上MainActivity.java文件的代码,有简单注释,最主要靠我们理解了:

package com.example.dialogtest1;import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button1=(Button)findViewById(R.id.button1);//获取布局文件的第一个按钮控件Button button2=(Button)findViewById(R.id.button2);//获取布局文件的第二个按钮控件//为按钮一添加单击事件监听器button1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubopenDialog1();//利用AlertDialog.Builder类来创建带列表的对话框的方法}});//为按钮二添加单击事件监听器button2.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubopenDialog2();//利用AlertDialog.Builder类来创建自己所定义布局的对话框的方法}});}/*利用AlertDialog.Builder类来创建带列表的对话框*/protected void openDialog1(){final String[] items={"苹果","香蕉","西瓜","梨","草莓","葡萄"};AlertDialog.Builder builder=new Builder(MainActivity.this);//实例化AlertDialog.Builder类builder.setIcon(R.drawable.ic_launcher);//设置对话框图标builder.setTitle("请选择你喜欢吃的水果");//设置对话框标题//添加列表项builder.setItems(items, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你喜欢吃的水果为"+items[which], Toast.LENGTH_SHORT).show();//弹出消息提示框,选择什么水果就弹出你喜欢吃的水果}});builder.create().show();//创建并显示对话框}/*利用AlertDialog.Builder类来创建自己所定义布局的对话框的方法*/protected void openDialog2(){AlertDialog.Builder builder=new Builder(MainActivity.this);builder.setIcon(R.drawable.ic_launcher);//设置对话框图标builder.setTitle("关于作者");final View v=LayoutInflater.from(MainActivity.this).inflate(R.layout.item, null); //使用LayoutInflater来获取我们所创建的布局文件item.xmlbuilder.setView(v);//设置对话框显示的视图//添加按钮builder.setPositiveButton("弹出消息提示框",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "向上吧!少年!!!", Toast.LENGTH_LONG).show();//弹出消息提示框}});builder.create().show();//创建并显示对话框}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}}

5.这样就写好了这个例子,接下来保存文件后运行此项目,运行效果如下:

选择第一个按钮,点击按钮显示带列表的对话框,效果如下:

点击选择你喜欢吃的水果,我喜欢吃梨,就点梨了,弹出消息提示:

接下来点击第二个按钮,这里显示了item.xml文件的TextView控件,效果如下:

在这个提示对话框中点击弹出消息提示框按钮,效果如下,弹出了提示消息:

6.以上就是使用AlertDialog.Builder类来创建带列表的提示对话框和自己所定义的布局文件的提示对话框,在这里,其实还有两个方法是用来生成列表对话框,一种是为对话框添加单选列表项,一种是为对话框添加多选列表项,方法分别为:setSingleChoiceItems(),setMultiChoiceItems(),使用方法和以上为对话框添加列表项的方法一样,这个就由大家自己想想,反思了,就这样。

7.以上内容仅供大家学习参考,写得不好,请见谅,如果有什么错误请提出,谢谢!

Android之使用AlertDialog.Builder类创建带列表的对话框和带自己所布局视图的对话框相关推荐

  1. Android之使用AlertDialog类和AlertDialog.Builder类创建带取消,确定,中立的对话框

    1.AlertDialog类的功能特别强大,不仅可以生成带有按钮的提示对话框,还可以生成带列表的列表对话框,在使用AlertDialog类生成对话框时,只能生成带按钮的提示对话框,如果要生成带列表的提 ...

  2. Android详细的对话框AlertDialog.Builder使用方法

    我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等 ...

  3. Android开发之Buidler模式初探结合AlertDialog.Builder解说

          什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得相同的构建过程能够创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它同意用户能够仅仅通过指定复杂对象 ...

  4. Android开发之Buidler模式初探结合AlertDialog.Builder讲解

    什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就 ...

  5. Android 中文 API ——对话框 AlertDialog.Builder

    2019独角兽企业重金招聘Python工程师标准>>> 刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了and ...

  6. Android源码解析--AlertDialog及AlertDialog.Builder

    昨天晚上弄到很晚,简单的看了下Dialog的源码,说要分析下建造者模式,在dialog里面的应用其实是在AlertDialog中. 按照惯例,先看类说明: [java] view plaincopy ...

  7. android AlertDialog.Builder

    AlertDialog的构造方法全部是Protected的,所以不能直接通过new一个AlertDialog来创建出一个AlertDialog. 要创建一个AlertDialog,就要用到AlertD ...

  8. android builder布局方式,android – AlertDialog.Builder与自定义布局和EditText;无法访问视图...

    我试图用EditText对象创建一个警报对话框.我需要以编程方式设置EditText的初始文本.这是我有的. AlertDialog.Builder dialogBuilder = new Alert ...

  9. android.support.v7.app.AlertDialog.Builder使用说明

    先看图        喜欢那种效果呢,左边是api22以下默认的,右边是android.support.v7.app.AlertDialog 用法说明: 1.改成v7的alertdialog andr ...

最新文章

  1. ThreeJS获取快照
  2. MySQL5.7.10多元复制功能搭建
  3. Oracle 之 配置HugePages内存
  4. python redis集群_Python3 redis集群连接 (带密码验证)
  5. python异常处理机制的好处_浅谈Python异常处理机制
  6. oracle光标位置无效,解决在Form表单中光标移动不了问题
  7. 数据库笔记02:查询与统计数据
  8. 服务器重启宝塔面板打不开了【已完美解决】
  9. 武汉市15区科技企业孵化器及众创空间补贴附武汉市科技企业孵化器和众创空间管理办法
  10. 获取百度网盘提取码的两种方法
  11. Vue3.0中文文档(Vue3 + TS学习资源路线)
  12. 鸿蒙系统只能从商城安装软件,鸿蒙系统安装不了第三方软件是为什么?鸿蒙系统怎么安装第三方app...
  13. 计算机漏洞安全相关的概念POC 、EXP 、VUL 、CVE 、0DAY
  14. omv安装mysql插件_Openmediavault第三方插件安装教程
  15. 【CUDA学习笔记】4.锁页内存(pinned memory or page locked memory)
  16. 加拿大首个以女性名字命名的工程学院:商界领袖Gina Cody向蒙特利尔康考迪亚大学捐赠1500万加元,创造历史
  17. VLP-16第一课: Velodyne的工作原理和驱动安装
  18. 【Elasticsearch】elasticsearch–ik安装
  19. python中area是什么意思_python之懒惰属性(延迟初始化)
  20. SQL dialect is not configured.

热门文章

  1. python使用suds来调用webservice
  2. python使用opencv实现人脸识别系统
  3. iOS使用新浪微博、微信官方SDK分享内容
  4. 第3章 变量和表达式
  5. 【笔记】C++自学笔记系列02:类的组合与类的友元
  6. FCN-Fully Convolutional Networks
  7. easyPR源码解析之ann_train.h/config.h
  8. c语言能让制表符空9个字符码,C语言入门9-1-分类函数
  9. java 微服务实践 视频,全新JAVA微服为务实战Spring Boot系列视频教程 小马哥 JAVA微服务实践视频课程...
  10. java 分层领域模型_Java领域模型 | 学步园