一个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;

/**复选button状态为全选 */

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

/**模拟的进度值 */

private int progressNumber;

/**进度对话框 */

private ProgressDialog progressDialog;

/**相应button*/

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);

}





/**注冊button监听事件*/

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("您的password不正确!!");





ImageView imageView = new ImageView(this);

imageView.setImageResource(R.drawable.mm1);

/**设置背景图片*/

builder.setView(imageView);

/**左边button*/

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

@Override

public void onClick(DialogInterface dialog, int which) {

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

}

});

/**中间button*/

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

@Override

public void onClick(DialogInterface dialog, int which) {

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

}

});

/**右边button*/

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

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

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

}

});

return builder.create();

}





/**单选button弹出框 */

private Dialog buildAlertDialog_radio() {

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

/**单选button,默认高中被选中*/

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("您点击的是左边确定button!");

}

});

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

@Override

public void onClick(DialogInterface dialog, int which) {

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

}

});

return builder.create();

}





/**能够多选button弹出框 */

private Dialog buildAlertDialog_checkbox() {

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

builder.setIcon(R.drawable.ic_launcher);

builder.setTitle("对话框");

/**复选button*/

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("您点击了确定button!");

}

});

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

@Override

public void onClick(DialogInterface dialog, int which) {

// TODO Auto-generated method stub

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

}

});

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("您点击的是确定button!");

}

});

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

@Override

public void onClick(DialogInterface dialog, int which) {

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

}

});

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;

}

}

}

Android经常使用的五种弹出对话框的更多相关文章

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

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

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

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  3. JavaScript中的三种弹出对话框

    学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性 ...

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

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  5. JavaScript:九种弹出对话框

    [1.最基本的js弹出对话框窗口代码] 这是最基本的js弹出对话框,其实代码就几句非常简单: <script LANGUAGE="javascript"> <!- ...

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

    对话框有三种 1:只是提醒,不能对脚本产生任何改变: 2:一般用于确认,返回 true 或者 false ,所以可以轻松用于 if...else...判断 3: 一个带输入的对话框,可以返回用户填入的 ...

  7. javascript 三种弹出对话框

    第一种:alert()方法 第二种:confirm()方法 返回一个布尔值,根据返回的值可以执行相应操作. 第三种: prompt()方法 返回输入的消息,或者其默认值提示框经常用于提示用户在进入页面 ...

  8. (转)winform(C#)里几种弹出对话框

    //消息框中需要显示哪些按钮,此处显示“确定”和“取消” MessageBoxButtons messButton = MessageBoxButtons.OKCancel; //"确定要退 ...

  9. js中三种弹出框

    javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码 ...

随机推荐

  1. zendstudio正则匹配查询

    Ctrl+H之后,显示的File Search标签页为Containing text. Alt+/ 帮助提示正则匹配的语法. 例子如下: select type from table where id ...

  2. MultipeerConnectivity

    Multipeer connectivity是一个使附近设备通过Wi-Fi网络.P2P Wi-Fi以及蓝牙个人局域网进行通信的框架.互相链接的节点可以安全地传递信息.流或是其他文件资源,而不用通过网络 ...

  3. C#基础学习第一天(.net菜鸟的成长之路-零基础到精通)

    1.Net平台和C#编程语言的概念 2.桌面应用程序: 我们要使用桌面应用程序,必须要安装该应用程序的客户端. winform应用程序. Application:应用程序 Internet:互联网应用 ...

  4. jquery网站左侧弹出导航菜单

    下载

  5. zepto源码研究 - zepto.js-3 (常用的工具)

    pluck: /** * 根据是否存在此属性来获取当前集合,返回一组属性值 * @param property * @returns {*} */ pluck: function(property){ ...

  6. Struts2 UI标签

    表单标签的共同属性(该属性只在没有使用 simple 主题时才可以使用) form 标签  用来呈现 HTML 语言中的表单元素 默认情况下, form 标签将被呈现为一个表格形式的 HTML 表单. ...

  7. Axure矩形边框重合边框变成双倍宽度解决办法

    选中两个矩形,菜单栏选择项目——项目设置——边界对齐(选择中心边界沿形状的边缘或者内边界对齐.将外边界对齐改为内边界对齐),即可去掉重合效果

  8. 2016最新一元云购完整源码 云购CMS系统 带安卓和ios手机客户端 源码免费分享

    原文转自:http://www.zccode.com/thread-724-1-1.html 该资源说明: 看起来不错的一套一元云购CMS源码,源码包里面带了安卓和ios手机客户端,手机客户端需要自己 ...

  9. 在线支付接口之PHP支付宝接口开发

    支付接口一般是第三方提供的代收款.付款的平台,可以通过支付接口帮助企业或个人利用一切可以使用的支付方式.常见支付平台:支付宝.快钱.云网支付.财付通. 支付宝页面:订单页面.状态页面.返回页面.--- ...

  10. ecshop有关real_ip()你发现的问题

    我这边有一个ECSHOP后台,有一个功能,在客户下订单时自动获取客户IP,用的是ECSHOP本身的real_ip函数,但这个函数存在一个问题,十个订单得到的IP,可能会有几个与CNZZ统计得到的不一样 ...