Android开发手记(13) 几种Alertdialog的使用
本文主要讨论七种形式的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的使用的更多相关文章
- Android开发 ---Activity的7种运行状态
Android开发 ---Activity的7种运行状态 创建 --> 启动 --> 运行 --> 暂停 --> 停止 --> 销毁 重启 操作图解: 1.MainA ...
- android开发中的5种存储数据方式
数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...
- 八一八android开发规范(一种建议)
开发规范重不重要了,不言而喻.这里就给大家说一故事把——据<圣经·旧约·创世记>第11章记载,是当时人类联合起来兴建,希望能通往天堂的高塔.为了阻止人类的计划,上帝让人类说不同的语言,使人 ...
- Android开发——弹性滑动的两种实现方式
0. 前言 欢迎转载,转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52538723 我们在Android开发--View滑动的三 ...
- Android 开发手记一NDK编程实例
在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Development Kit的简称.它是一个工具集,集成 ...
- Android开发中退出程序几种方法
参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...
- Android开发必知--几种不同对话框的实现
在开发过程中,与用户交互式免不了会用到对话框以实现更好的用户体验,所以掌握几种对话框的实现方法还是非常有必要的.在看具体实例之前先对AlertDialog做一个简单介绍.AlertDialog是功能最 ...
- Android开发手记(18) 数据存储三 SQLite存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 SQLite 是以嵌入式为目的 ...
- Android开发手记(22) 传感器的使用
Android的传感器主要包括八大传感器,他们分别是:加速度传感器(accelerometer).陀螺仪(gyroscope).方向传感器(orientation).磁力传感器(magnetic fi ...
随机推荐
- 逻辑很重要:一句sql语句的事,自己却想了半天,绕了个大弯子
问题:系统升级后审核认证信息分别写入两个表,现在需要链接用户表和相应的新旧审核表获取字段值? 钻进胡同里:一直纠结于升级之后的会员信息从新表查,升级之前的数据从旧表查,纠结于根据时间戳分条件判断, 其 ...
- hdu 1241 Oil Deposits(DFS求连通块)
HDU 1241 Oil Deposits L -DFS Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & ...
- centos7 install mysql
1. 下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2. 安装mysql-co ...
- html动态编辑框
简述: 随着在输入框中增加字符,动态矿高度增加(IE9及以上 chrome firefox) 由于IE8 不支持oninput函数,所以不能实现此效果 事件函数: function feedDivO ...
- POJ2479 Maximum sum(dp)
题目链接. 分析: 用 d1[i] 表示左向右从0到i的最大连续和,d2[i] 表示从右向左, 即从n-1到i 的最大连续和. ans = max(ans, d1[i]+d2[i+1]), i=0,1 ...
- -_-#【Canvas】回弹
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- HDU 1045 Fire Net(图匹配)
题目大意: 这个是以前做过的一道DFS题目,当时是完全暴力写的. 给你一个N代表是N*N的矩阵,矩阵内 ‘X’代表墙, ‘.’代表通道. 问这个矩阵内最多可以放几个碉堡, 碉堡不能在同一行或者同一列, ...
- MapReduce执行过程源码分析(一)——Job任务的提交
为了能使源码的执行过程与Hadoop权威指南(2.3版)中章节Shuffle and Sort的分析相对应,Hadoop的版本为0.20.2. 一般情况下我们通过Job(org.apache.hado ...
- 给大家介绍款在线压缩JS的工具
首先说下该工具的域名:http://javascriptcompressor.com/ 进入后界面如下: 具体要讲下它的功能点:在线压缩 Javascript 源码可以分不同的压缩级别:比如,一般情况 ...
- 用Visual Studio创建集成了gtest的命令行工程
gtest代码库中的sample代码 在gtest的代码库中,包含了10个sample的代码,覆盖了gtest的常见用法,sample的代码位于以下文件夹: gtest\samples 由于gtest ...