2019独角兽企业重金招聘Python工程师标准>>>
AlertDialog | 警告框 应用最广功能最丰富 |
ProgressDialog | 进度对话框 只是对进度条的封装 |
DatePickerDialog | 日期选择对话框 |
TimePickerDialog | 时间选择对话框 |
AlertDialog提供了一些方法来生成4种与定义对话框:
带消息、带N个按钮的提示对话框
带列表、带N个按钮的列表对话框
带多个单选列表项,带N个按钮的对话框
带多个多选列表项,带N个按钮的对话框
使用AlertDialog创建的步骤大致为:
创建AlertDialog.Builder对象,该对象是AlertDialog的创建器
调用AlertDialog.Builder的方法为对话框设置图标、标题、内容等
调用AlertDialog.Builder的create()创建AlertDialog对话框
调用AlertDialog的show()显示对话框
setMultiChoiceItems(CharSequence[] items,boolean[] checkedItens,DialogInterface.OnMulti choiceClickListener listener)创建多选列表对话框
setSingleChoiceItems(CharSequence[] items,int checkedItem,DialogInterface.OnMulti choiceClickListener listener)创建单选列表对话框
setAdapter(ListAdapter adapter,DialogInterface.OnClickListener listener)创建根据ListAdapter提供列表项的列表对话框
setItems(int itemsId,DialogInterface.OnClickListener listener)创建普通列表对话框
提示对话框
xml
MainActivity
package org.crazyit.dialog;import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;/*** Description:*
site: crazyit.org *
Copyright (C), 2001-2012, Yeeku.H.Lee*
This program is protected by copyright laws.*
Program Name:*
Date:* @author Yeeku.H.Lee kongyeeku@163.com* @version 1.0*/
public class DialogTest extends Activity
{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Button bn = (Button)findViewById(R.id.bn01);//定义一个AlertDialog.Builder对象final Builder builder = new AlertDialog.Builder(this);//为按钮绑定事件监听器bn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View source){// 设置对话框的图标builder.setIcon(R.drawable.tools);// 设置对话框的标题builder.setTitle("自定义普通对话框");// 设置对话框显示的内容builder.setMessage("一个简单的提示对话框");// 为对话框设置一个“确定”按钮builder.setPositiveButton("确定"//为列表项的单击事件设置监听器, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){EditText show = (EditText) findViewById(R.id.show);// 设置EditText内容show.setText("用户单击了“确定”按钮!");}});// 为对话框设置一个“取消”按钮builder.setNegativeButton("取消", new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog, int which){EditText show = (EditText) findViewById(R.id.show);// 设置EditText内容show.setText("用户单击了“取消”按钮!");}});//创建、并显示对话框builder.create().show();}});}
}
通过setItems方法建立普通列表对话框
xml
MainActivity
package org.crazyit.dialog;import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;/*** Description:*
site: crazyit.org *
Copyright (C), 2001-2012, Yeeku.H.Lee*
This program is protected by copyright laws.*
Program Name:*
Date:* @author Yeeku.H.Lee kongyeeku@163.com* @version 1.0*/
public class ListDialog extends Activity
{ @Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Button bn = (Button)findViewById(R.id.bn);final Builder b = new AlertDialog.Builder(this);//为按钮绑定事件监听器bn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View source){//设置对话框的图标b.setIcon(R.drawable.tools);//设置对话框的标题b.setTitle("简单列表对话框");//为对话框设置多个列表b.setItems(new String[] {"红色" , "绿色" , "蓝色"}//为按钮设置监听器, new OnClickListener() {//该方法的which参数代表用户单击了那个列表项@Overridepublic void onClick(DialogInterface dialog, int which) {TextView show = (TextView)findViewById(R.id.show);//which代表哪个列表项被单击了switch(which){case 0:show.setBackgroundColor(Color.RED);break;case 1:show.setBackgroundColor(Color.GREEN);break;case 2:show.setBackgroundColor(Color.BLUE);break; } }});//创建、并显示对话框b.create().show(); }});}
}
通过setSingleChoiceItems创建单选列表对话框
xml
MainAcitivity
package org.crazyit.dialog;import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;/*** Description:*
site: crazyit.org *
Copyright (C), 2001-2012, Yeeku.H.Lee*
This program is protected by copyright laws.*
Program Name:*
Date:* @author Yeeku.H.Lee kongyeeku@163.com* @version 1.0*/
public class SingleChoiceDialog extends Activity
{final int SINGLE_DIALOG = 0x113;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Button bn = (Button)findViewById(R.id.bn);//为按钮绑定事件监听器bn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View source){//显示对话框showDialog(SINGLE_DIALOG); }});}//重写onCreateDialog方法创建对话框@Overridepublic Dialog onCreateDialog(int id, Bundle state){//判断需要生成哪种类型的对话框switch (id){case SINGLE_DIALOG:Builder b = new AlertDialog.Builder(this);// 设置对话框的图标b.setIcon(R.drawable.tools);// 设置对话框的标题b.setTitle("单选列表对话框");// 为对话框设置多个列表b.setSingleChoiceItems(new String[]{ "红色", "绿色", "蓝色" }// 默认选中第二项, 1//为列表项的单击事件设置监听器, new OnClickListener(){@Overridepublic void onClick(DialogInterface dialog,int which){TextView show = (TextView) findViewById(R.id.show);// which代表哪个列表项被单击了switch (which){//修改文本框的背景色case 0:show.setBackgroundColor(Color.RED);break;case 1:show.setBackgroundColor(Color.GREEN);break;case 2:show.setBackgroundColor(Color.BLUE);break;}}});// 添加一个“确定”按钮,用于关闭该对话框b.setPositiveButton("确定", null);// 创建对话框return b.create();}return null;}
}