本文主要讨论七种形式的AlertDialog,及其编写方法。

1、退出

  在用户退出的时候提示用户是否退出,含有“确定”和“退出”两个按键。

        btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setMessage("确定退出吗?");
alertDlg.setTitle("退出");
alertDlg.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.this.finish();
}
});
alertDlg.setNegativeButton("取消", null);
alertDlg.show();
}
});

2、调查图表

  弹出对话框,让用户选择相应的按钮来获得用户选项。含有相应的提示问题。

 btnChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setIcon(android.R.drawable.btn_star);
alertDlg.setTitle("调查");
alertDlg.setMessage("你喜欢的颜色是?");
alertDlg.setPositiveButton("红色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢红色", Toast.LENGTH_SHORT);
}
});
alertDlg.setNegativeButton("蓝色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢蓝色", Toast.LENGTH_SHORT);
}
});
alertDlg.setNeutralButton("黄色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢黄色", Toast.LENGTH_SHORT);
}
});
alertDlg.show();
}
});

3、输入内容

  弹出对话框,提示用户输入用户名或者密码,可以作登陆使用。

         btnContent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setTitle("请输入");
alertDlg.setIcon(android.R.drawable.ic_dialog_info);
alertDlg.setView(new EditText(MainActivity.this)).setPositiveButton("确定", null);
alertDlg.setNegativeButton("取消", null);
alertDlg.show();
}
});

4、单选按钮

  对话框内含有一系列单选按钮让用户选择。

         btnRadio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("单选框")
.setIcon(android.R.drawable.ic_dialog_info)
.setSingleChoiceItems(new String[]{"红色", "蓝色", "黄色"}, 0, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
});

5、多选按钮

  对话框内含有一系列多选按钮让用户选择。

         btnCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("复选框")
.setIcon(android.R.drawable.ic_dialog_info)
.setMultiChoiceItems(new String[]{"红色", "蓝色", "黄色"}, null, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
});

6、简单列表

  含有一系列简单的列表,供用户点击,可以做菜单使用。

         btnList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("列表框")
.setIcon(android.R.drawable.ic_dialog_info)
.setItems(new String[]{"红色", "蓝色", "黄色"}, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
});

7、自定义布局

  可以自定义对话框显示内容,通过资源文件导入布局。

         btnCostume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.activity_main,
(ViewGroup)findViewById(R.id.mainMenu)); new AlertDialog.Builder(MainActivity.this).setTitle("自定义布局")
.setView(layout)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
});

8、完整代码:

 import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button btnExit;
private Button btnChart;
private Button btnContent;
private Button btnRadio;
private Button btnCheckBox;
private Button btnList;
private Button btnCostume; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btnExit = (Button)findViewById(R.id.btnExit);
btnChart = (Button)findViewById(R.id.btnChart);
btnContent = (Button)findViewById(R.id.btnContent);
btnRadio = (Button)findViewById(R.id.btnRadio);
btnCheckBox = (Button)findViewById(R.id.btnCheckBox);
btnList = (Button)findViewById(R.id.btnList);
btnCostume = (Button)findViewById(R.id.btnCostume); btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setMessage("确定退出吗?");
alertDlg.setTitle("退出");
alertDlg.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.this.finish();
}
});
alertDlg.setNegativeButton("取消", null);
alertDlg.show();
}
}); btnChart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setIcon(android.R.drawable.btn_star);
alertDlg.setTitle("调查");
alertDlg.setMessage("你喜欢的颜色是?");
alertDlg.setPositiveButton("红色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢红色", Toast.LENGTH_SHORT);
}
});
alertDlg.setNegativeButton("蓝色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢蓝色", Toast.LENGTH_SHORT);
}
});
alertDlg.setNeutralButton("黄色", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你喜欢黄色", Toast.LENGTH_SHORT);
}
});
alertDlg.show();
}
}); btnContent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder alertDlg = new AlertDialog.Builder(MainActivity.this);
alertDlg.setTitle("请输入");
alertDlg.setIcon(android.R.drawable.ic_dialog_info);
alertDlg.setView(new EditText(MainActivity.this)).setPositiveButton("确定", null);
alertDlg.setNegativeButton("取消", null);
alertDlg.show();
}
}); btnRadio.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("单选框")
.setIcon(android.R.drawable.ic_dialog_info)
.setSingleChoiceItems(new String[]{"红色", "蓝色", "黄色"}, 0, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
}); btnCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("复选框")
.setIcon(android.R.drawable.ic_dialog_info)
.setMultiChoiceItems(new String[]{"红色", "蓝色", "黄色"}, null, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
}); btnList.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AlertDialog.Builder(MainActivity.this).setTitle("列表框")
.setIcon(android.R.drawable.ic_dialog_info)
.setItems(new String[]{"红色", "蓝色", "黄色"}, null)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
}); btnCostume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.activity_main,
(ViewGroup)findViewById(R.id.mainMenu)); new AlertDialog.Builder(MainActivity.this).setTitle("自定义布局")
.setView(layout)
.setPositiveButton("确定", null)
.setNegativeButton("取消", null).show();
}
}); } }

MainActivity.java

Android开发手记(13) 几种Alertdialog的使用的更多相关文章

  1. Android开发 ---Activity的7种运行状态

     Android开发 ---Activity的7种运行状态 创建 --> 启动 --> 运行 -->  暂停 --> 停止 --> 销毁 重启 操作图解: 1.MainA ...

  2. android开发中的5种存储数据方式

    数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...

  3. 八一八android开发规范(一种建议)

    开发规范重不重要了,不言而喻.这里就给大家说一故事把——据<圣经·旧约·创世记>第11章记载,是当时人类联合起来兴建,希望能通往天堂的高塔.为了阻止人类的计划,上帝让人类说不同的语言,使人 ...

  4. Android开发——弹性滑动的两种实现方式

    0. 前言   欢迎转载,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52538723 我们在Android开发--View滑动的三 ...

  5. Android 开发手记一NDK编程实例

    在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Development Kit的简称.它是一个工具集,集成 ...

  6. Android开发中退出程序几种方法

    参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...

  7. Android开发必知--几种不同对话框的实现

    在开发过程中,与用户交互式免不了会用到对话框以实现更好的用户体验,所以掌握几种对话框的实现方法还是非常有必要的.在看具体实例之前先对AlertDialog做一个简单介绍.AlertDialog是功能最 ...

  8. Android开发手记(18) 数据存储三 SQLite存储数据

    Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...

  9. Android开发手记(22) 传感器的使用

    Android的传感器主要包括八大传感器,他们分别是:加速度传感器(accelerometer).陀螺仪(gyroscope).方向传感器(orientation).磁力传感器(magnetic fi ...

随机推荐

  1. centos 6.5 服务器安装 (LNMP ntfs文件支持 PHP-RPM CHROOT沙盒)

    centos 6.5 最小化安装 进入系统 手动开启网卡 #ifconfig eth0        //(默认会自动获得ip) 修改网站配置文件,默认开启 #cd /etc/sysconfig/ne ...

  2. 如何让你的Python程序支持多语言

    如何让你的Python程序支持多语言 本文介绍如何通过Python标准库gettext帮助你的程序支持多语言. 代码例子 import random guessesTaken = 0 print(_( ...

  3. JS键盘的键码(event.keyCode)

    keycode 8 = BackSpace BackSpace keycode 9 = Tab Tab keycode 12 = Clear keycode 13 = Enter keycode 16 ...

  4. 【新手--android日记】实现IOS风格电话界面

    [前言--新手日记] 开始学习android开发,通过做一个通讯录练习,打算实现各种自己想实现的功能. 新手作品,技术含量很浅.主要是记录自己的学习过程. 纯学习之用,求评论,求建议,求教导. [正题 ...

  5. js 冒泡事件的处理

    onMouseOver 和 onMouseOut事件冒泡 当事件在某一DOM元素被触发时,例如用户在某个节点上点击鼠标,事件将跟随着该节点继承的各个父节点冒泡穿过整个DOM的节点层次,直到它遇到依附有 ...

  6. 新建PCH文件以及常用宏定义

    $(SRCROOT)/项目名/pch文件名.pch //0-255的随机数 #define randint arc4random() % 256 //随机色 #define randColor [UI ...

  7. mongodb 排序 Unable to determine the serialization information for the expression 异常

    好久没用mongodb了...最近又开始用起来了. 遇到情景:   2句话分开写.是正常的,因为我是先取再排序的   然而.我想直接排序出来. 就写在了一起.最后.ToList()   然后报 Una ...

  8. 玩死人不偿命的CLOUDSTACK

    玩过CLOUDSTACK(CS)的人,一定不会陌生下面的LOG: 2013-12-27 18:26:43,861 DEBUG [allocator.impl.FirstFitAllocator] (J ...

  9. (转载)php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗?

    (转载)http://s.yanghao.org/program/viewdetail.php?i=184313 php的类中可以不定义成员变量,直接在构造方法中使用并赋值吗? class block ...

  10. Matlab绘制三维图形以及提示框

    1.首先,在编辑区输入如下代码 >> [x,y] = meshgrid([-100,0.1,100]); >> z = sqrt(x.^2 + y.^2); >> ...