本文主要讨论七种形式的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. Seajs教程

    API 快速参考 该页面列举了 Sea.js 的常用 API.只要掌握这些用法,就可以娴熟地进行模块化开发. seajs.config 用来对 Sea.js 进行配置. seajs.config({ ...

  2. sql如何向一个表中批量插入大量数据

    --如果是一个表插入另外一个表.insert into tb1 需要的列名 select 按照前面写上需要的列名 from tb2 --如果两表结构一样.insert into tb1 * selec ...

  3. Codeforces 556A Case of the Zeros and Ones(消除01)

    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u   Description Andr ...

  4. PIL Image 转成 wx.Image、wx.Bitmap

    import wx from PIL import Image def ConvertToWxImage(): pilImage = Image.open('1.png') image = wx.Em ...

  5. cypress的EZ-USB对于USB的介绍

    Host is MasterThis is a fundamental USB concept. There is exactly onemaster in a USB system: the hos ...

  6. poj 2031Building a Space Station

    http://poj.org/problem?id=2031 #include<cstdio> #include<cstring> #include<cmath> ...

  7. Mac中的快捷键

    Mac中主要有四个修饰键,分别是Command,Control,Option和Shift,这四个键分别有自己的图案 基本快捷键 Command是Mac里最重要的修饰键,在大多数情况下相当于Window ...

  8. windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器(用轮询的办法保持高精度)

    windows 下,用CreateWaitableTimer SetWaitableTimer 创建定时器可以有 100 纳秒也就是 1/10 微秒, 1/10000 毫秒的精度. 呵呵. SetWa ...

  9. 关于windows service不能访问网络共享盘(NetWork Drive)的解决方案

    我映射一个网络驱动器到本机的时候,发现本机的程序直接能访问读取网络驱动器,但是把本机的程序作为本机的windows服务运行的时候就不能访问了. Qt中的QDir::exist(folder)访问失败. ...

  10. LD1-K(求差值最小的生成树)

    题目链接 /* *题目大意: *一个简单图,n个点,m条边; *要求一颗生成树,使得其最大边与最小边的差值是所有生成树中最小的,输出最小的那个差值; *算法分析: *枚举最小边,用kruskal求生成 ...