Android常用的五种弹出对话框

一个Android开发中常用对话框的小例子,共有五种对话框:普通弹出对话框,单选对话框,多选对话框,输入对话框及进度条样式对话框:

<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" >

<Button

android:id="@+id/common_dialog"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="普通对话框"

android:textSize="16sp"

android:layout_marginTop="10dp" />

<Button

android:id="@+id/radio_dialog"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="单选对话框"

android:textSize="16sp"

android:layout_marginTop="10dp"  />

<Button

android:id="@+id/check_dialog"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="多选对话框"

android:textSize="16sp"

android:layout_marginTop="10dp" />

<Button

android:id="@+id/input_dialog"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="输入文字对话框"

android:textSize="16sp"

android:layout_marginTop="10dp" />

<Button

android:id="@+id/progress_dialog"

android:layout_width="match_parent"

android:layout_height="40dp"

android:text="进度条对话框"

android:textSize="16sp"

android:layout_marginTop="10dp" />

</LinearLayout>

下面是输入内容的简单布局activity_input.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />

<EditText

android:id="@+id/uname"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/hello_world" />

<EditText

android:id="@+id/upass"

android:layout_width="fill_parent"

android:layout_height="wrap_content" />

</LinearLayout>

代码及注释:

public class MainActivity extends Activity implements OnClickListener {

/**单选框模拟标题 大学*/

private final static int CHECKED_ENU = 0;

/**单选框模拟标题  高中*/

private final static int CHECKED_SEL = 1;

/**单选框模拟标题  初中*/

private final static int CHECKED_CHU = 2;

/**复选按钮状态为全选 */

private boolean[] checked = { true, true, true, false };

/**模拟的进度值 */

private int progressNumber;

/**进度对话框 */

private ProgressDialog progressDialog;

/**对应按钮*/

private Button commonBtn, radioBtn, checkBtn, inputBtn, progressBtn;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initViews();

initListeners();

}

/**初始化UI控件*/

private void initViews() {

this.commonBtn = (Button) findViewById(R.id.common_dialog);

this.radioBtn = (Button) findViewById(R.id.radio_dialog);

this.checkBtn = (Button) findViewById(R.id.check_dialog);

this.inputBtn = (Button) findViewById(R.id.input_dialog);

this.progressBtn = (Button) findViewById(R.id.progress_dialog);

}

/**注册按钮监听事件*/

private void initListeners() {

this.commonBtn.setOnClickListener(this);

this.radioBtn.setOnClickListener(this);

this.checkBtn.setOnClickListener(this);

this.inputBtn.setOnClickListener(this);

this.progressBtn.setOnClickListener(this);

}

/**普通对话框 */

private Dialog buildAlertDialog() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

builder.setMessage("您的密码不对!!");

ImageView imageView = new ImageView(this);

imageView.setImageResource(R.drawable.mm1);

/**设置背景图片*/

builder.setView(imageView);

/**左边按钮*/

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是左边确定按钮!");

}

});

/**中间按钮*/

builder.setNeutralButton("详情", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是中间详情按钮!");

}

});

/**右边按钮*/

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

setTitle("您点击的是右边取消按钮!");

}

});

return builder.create();

}

/**单选按钮弹出框 */

private Dialog buildAlertDialog_radio() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

/**单选按钮,默认高中被选中*/

builder.setSingleChoiceItems(new String[] { "大学", "高中", "初中", "小学" }, 1, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

switch (which) {

case CHECKED_ENU:

setTitle("大学");

break;

case CHECKED_SEL:

setTitle("高中");

break;

case CHECKED_CHU:

setTitle("初中");

break;

default:

setTitle("小学");

break;

}

}

});

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是左边确定按钮!");

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是右边取消按钮!");

}

});

return builder.create();

}

/**可以多选按钮弹出框 */

private Dialog buildAlertDialog_checkbox() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

/**复选按钮*/

builder.setMultiChoiceItems(new String[] { "大学", "高中", "初中", "小学" }, checked, new DialogInterface.OnMultiChoiceClickListener() {

@Override

public void onClick(DialogInterface dialog, int which, boolean isChecked) {

setTitle("which=" + which + "-----" + "isChecked=" + isChecked);

}

});

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击了确定按钮!");

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

setTitle("您点击的是了取消按钮!");

}

});

return builder.create();

}

/**含可以输入文本的弹出框 */

private Dialog buildAlertDialog_input() {

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

LayoutInflater inflater = LayoutInflater.from(this);

builder.setView(inflater.inflate(R.layout.activity_input, null));

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是确定按钮!");

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

setTitle("您点击的是取消按钮!");

}

});

return builder.create();

}

/**进度对话框 */

private Dialog buildAlertDialog_progress() {

progressDialog = new ProgressDialog(this);

progressDialog.setTitle("进度条");

progressDialog.setMessage("正在下载...........");

/**进度条样式 */

progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

/**模糊效果 */

progressDialog.setIndeterminate(false);

return progressDialog;

}

/**每隔0.3秒更新一次进度 */

public void updateProgress() {

new Thread() {

@Override

public void run() {

try {

while (progressNumber <= 100) {

progressDialog.setProgress(progressNumber++);

Thread.sleep(300);

super.run();

}

/**下载完后,关闭下载框 */

progressDialog.cancel();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}.start();

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.common_dialog:

buildAlertDialog().show();

break;

case R.id.radio_dialog:

buildAlertDialog_radio().show();

break;

case R.id.check_dialog:

buildAlertDialog_checkbox().show();

break;

case R.id.input_dialog:

buildAlertDialog_input().show();

break;

case R.id.progress_dialog:

buildAlertDialog_progress().show();

updateProgress();

break;

default:

break;

}

}

}

时间: 2024-10-06 16:04:24

Android常用的五种弹出对话框的相关文章

JavaScript中的三种弹出对话框

JavaScript中的三种弹出对话框 *****本文来自互联网****** 学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性更精彩,实际上我们经常会在进行网页浏览时简单这种类型的对话框,在用户与应用程序进行双向交流时,经常要用到对话框.avascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prom

javascript入门系列演示·三种弹出对话框的用法实例

<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/

【JSP】三种弹出对话框的用法实例

对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的字符串,常见于某些留言本或者论坛输入内容那里的 插入UBB格式图片 下面我们分别演示: 1 <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> 2 <!DOCTYPE html PUBLIC "-//W3C//

JSP---三种弹出对话框的用法实例

(非原创) 方式1: JSP前端 <script type="text/javascript" language="javascript"> alert("您还没有登录,请登录..."); window.document.location.href="userlogin.html"; </script> 方式2: Java后台 public void popAlert() { response.setC

JSP中三种弹出对话框的用法《转》

对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的字符串,常见于某些留言本或者论坛输入内容那里的 插入UBB格式图片 <%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%> <script language="javascript"> functi

javascript 三种弹出对话框

第一种:alert()方法 第二种:confirm()方法 返回一个布尔值,根据返回的值可以执行相应操作. 第三种: prompt()方法 返回输入的消息,或者其默认值提示框经常用于提示用户在进入页面前输入某个值. 当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操作. 如果用户点击确认,那么返回值为输入的值. 如果用户点击取消,那么返回值为 null.

JS弹出对话框的三种实现方式的意义

最近开始学习JavaScript,最开始讲的就是alert().confirm()和prompt()三种JS弹出对话框.三种弹出对话框分别是警告.确认和提示消息. 第一种警告消息框 (alert)     alert 方法有一个参数,即希望对用户显示的文本字符串.该字符串不是 HTML 格式.该消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行操作. <script> alert("Hello

安卓弹出对话框——Alertdialog(一)

首先看各种样式的对话框: 我们看到,Dialog有很多的子类实现,所以我们要定义一个对话框,使用其子类来实例化一个即可,而不要直接使用Dialog这个父类来构造. 二.AlertDialog 今天我们重点要来了解的就是AlertDialog对话框,我们看到,AlertDialog是Dialog的一个直接子类. 使用AlertDialog,我们可以显示一个标题,最多3个按钮操作,以及一组选择框或者是自己定义的弹出框. 这里借用android的官方文档提供的一个图来看看AlertDialog框的组成

js 弹出对话框的方法总结

原文:http://www.cnblogs.com/xiaofengfeng/archive/2012/10/20/2732784.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o