Android所有对话框_dialog大全

来源:互联网 发布:软件测试公司排行 编辑:程序博客网 时间:2024/04/28 21:07

Android在dialog方面封装的得很充分,常用的dialog都封装好了.如果还觉得不够,Android提供用户自定义dialog.

先看图:



代码部分:


<span style="font-size:14px;">package com.tomorrow_p.dialog_p;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.app.Dialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.content.DialogInterface.OnMultiChoiceClickListener;import android.os.Bundle;import android.os.SystemClock;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/** * 确定取消对话框 *  * @param v */public void click1(View v) {AlertDialog.Builder builder = new Builder(this);builder.setTitle("友情提示");builder.setMessage("若练此功,必先自宫,是否继续");builder.setPositiveButton("是的,想好了", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "啊...", 0).show();Toast.makeText(MainActivity.this, "即使自宫,未必成功...", 0).show();}});builder.setNegativeButton("想想在说", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this, "若不自宫,一定不成功", 0).show();}});builder.show();}/** * 单选对话框 *  * @param v */public void click2(View v) {AlertDialog.Builder builder = new Builder(this);builder.setTitle("请选择性别");final String[] items = { "男", "女", "未知" };builder.setSingleChoiceItems(items, 0, new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();Toast.makeText(MainActivity.this, items[which], 0).show();}});builder.show();}/** * 多选对话框2 *  * @param v */public void click3(View v) {AlertDialog.Builder builder = new Builder(this);builder.setTitle("请输入你喜欢的年龄");final String[] items = { "18", "19", "20", "21" };final boolean[] checkedItems = new boolean[] { false, false, false,false };builder.setMultiChoiceItems(items, checkedItems,new OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which,boolean isChecked) {checkedItems[which] = isChecked;Toast.makeText(MainActivity.this, items[which], 0).show();}});builder.setPositiveButton("提交", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {StringBuffer sb = new StringBuffer();for (int i = 0; i < checkedItems.length; i++) {if (checkedItems[i]) {sb.append(items[i] + ",");}}Toast.makeText(MainActivity.this, "你选择的是:" + sb.toString(), 0).show();}});builder.setNegativeButton("取消", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.show();}/** * 列表对话框 *  * @param v */public void click4(View v) {new AlertDialog.Builder(this).setTitle("列表框").setItems(new String[] { "Item1", "Item2" }, null).setNegativeButton("确定", null).show();}/** * 三选对话框 *  * @param v */public void click5(View v) {Dialog dialog = new AlertDialog.Builder(this).setIcon(android.R.drawable.btn_star).setTitle("智商考验").setMessage("你是猪吗?").setPositiveButton("是的", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "这智商...", 0).show();}}).setNegativeButton("好像是的", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "这智商......", 0).show();}}).setNeutralButton("应该是的", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "这智商.........", 0).show();}}).create();dialog.show();}public void click6(View v) {final EditText editText = new EditText(this);new AlertDialog.Builder(this).setTitle("请输入").setIcon(android.R.drawable.ic_dialog_info).setView(editText).setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(MainActivity.this,editText.getText().toString(), 0).show();}}).setNegativeButton("取消", null).show();}/** * 进度对话框1 *  * @param v */public void process1(View v) {final ProgressDialog pd = new ProgressDialog(this);pd.setTitle("提醒");pd.setMessage("正在处理...");pd.show();new Thread() {public void run() {SystemClock.sleep(2000);pd.dismiss();};}.start();}/** * 进度对话框2 *  * @param v */public void process2(View v) {final ProgressDialog pd = new ProgressDialog(this);pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);pd.setTitle("提醒");pd.setMessage("正在处理...");pd.show();new Thread() {public void run() {pd.setMax(100);for (int i = 0; i <= 100; i++) {pd.setProgress(i);SystemClock.sleep(80);}pd.dismiss();};}.start();}public void div(View v) {Toast.makeText(this, "更炫酷的自定义对话框请参看另一篇帖子", 0).show();}}</span>

自定义对话框:

   

<span style="font-size:14px;">AlertDialog.Builder  builder=new Builder(HomeActivity.this);view = View.inflate(HomeActivity.this,R.layout.dialog_set_pwd, null);自定义对话框的布局,找到设置的控件,设置属性AlertDialog dialog = builder.create();      dialog.setView(view);   // 设置给对话框的布局  设置对话框侦听    dialog.show();</span>

源码地址:点击打开链接

1 0