Android对话框AlertDialog

来源:互联网 发布:55开的淘宝店地址 编辑:程序博客网 时间:2024/06/14 04:24
 一、4种常用的对话框
  AlertDialog:功能最丰富、实际应用最广泛的对话框。
  1.   ProgressDialog:进度条对话框。
  2.   DatePickerDialog:日期选择对话框。
  3.   TimePickerDialog:时间选择对话框。

 二、AlertDialog对话框的结构以及创建步骤

AlertDialog对话框的功能很强大,它可以生成各种内容的对话框,但AlertDialog生成的对话框总有如下的结构。

      

从上面对话框的结构来看,创建一个对话框需要经过如下几步:

  1. 创建AlertDialog.Builder对象。
  2. 调用AlertDialog.Builder的setTitle()或者setCustomTitle()方法设置标题。
  3. 调用AlertDialog.Builder的setIcon()方法设置图标。
  4. 调用AlertDialog.Builder的相关设置方法设置对话框的内容。
  5. 调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或者setNeutralButton()方法添加按钮。
  6. 调用AlertDialog.Builder的create()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出来。

上面的6个步骤中,第4个步骤最为灵活,也是很关键的一步,AlertDialog允许创建各种内容的对话框。

AlertDialog提供的6种方法来指定对话框的内容:

  1. setMessage():设置对话框内容为简单文本内容。
  2. setItems():设置对话框内容为简单列表项。
  3. setSingleChoiceItems():设置对话框内容为单选列表项。
  4. setMultieChoiceItems():设置对话框内容为多选列表项.
  5. setAdapter():设置对话框内容为自定义列表项。
  6. setView():设置对话框内容为自定义View。

三、实例展示

1、使用setMessage()方法显示提示消息的对话框,当点击按钮的时候,会弹出对话框。

btn_1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//创建一个AlertDialog.Builder对象 new AlertDialog.Builder(MainActivity.this) //设置标题 .setTitle("简单对话框")//设置图标 .setIcon(R.drawable.ic_launcher) //设置简单文本内容.setMessage("这是一个简单的对话框")//设置确定按钮.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了确定按钮", Toast.LENGTH_SHORT).show();}})//设置取消按钮.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了取消按钮", Toast.LENGTH_SHORT).show();}}).create().show();}});<span style="font-size:14px;"></span>

2、使用setItem()创建简单列表对话框,调用该方法时需要传入一个数组或者数组资源的资源ID。

         //定义一个数组作为参数final String[] items = {"北京","上海","广州","西安"};//简单列表对话框btn_2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(MainActivity.this).setTitle("简单列表对话框").setIcon(R.drawable.ic_launcher).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();}}).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了确定按钮", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了取消按钮", Toast.LENGTH_SHORT).show();}}).create().show();}

3、使用setSingleChoiceItems()方法创建单选列表对话框,调用该方法的时候可以传入数组、Cursor、ListAdapter作为参数。

btn_3.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(MainActivity.this).setTitle("单选列表对话框").setIcon(R.drawable.ic_launcher).setSingleChoiceItems(items, 1,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了"+items[which]+"选项", Toast.LENGTH_SHORT).show();}}).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了确定按钮", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了取消按钮", Toast.LENGTH_SHORT).show();}}).create().show();}});

4、使用setMultieChoiceItems()方法创建多选项对话框,调用该方法的时候可以参入数组、Cursor作为参数.

btn_4.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(MainActivity.this).setTitle("多选列表对话框").setIcon(R.drawable.ic_launcher).setMultiChoiceItems(items,new boolean[]{true,false,false,true},null).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了确定按钮", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了取消按钮", Toast.LENGTH_SHORT).show();}}).create().show();}});

5、使用setAapter()方法创建自定义列表对话框。调用该方法的时候需要传入一个Adapter作为参数.

btn_5.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(MainActivity.this).setTitle("自定义列表对话框").setIcon(R.drawable.ic_launcher).setAdapter(new ArrayAdapter<String>(MainActivity.this, R.layout.line,items), null).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了确定按钮", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "你单击了取消按钮", Toast.LENGTH_SHORT).show();}}).create().show();}});

6、使用setView()方法创建自定义View的对话框。调用该方法的时候接受一个View组件,该View组件将作为对话框的内容。

btn_6.setOnClickListener(new OnClickListener() {TableLayout loginForm  = (TableLayout) getLayoutInflater().inflate(R.layout.login, null);@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(MainActivity.this).setTitle("自定义对话框").setIcon(R.drawable.ic_launcher).setView(loginForm).setPositiveButton("登陆", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "此处执行登陆处理", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "此处执行取消处理", Toast.LENGTH_SHORT).show();}}).create().show();}});














0 0
原创粉丝点击