本文主要讨论七种形式的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. 让织梦CMS的后台编辑器支持优酷视频

    最近做了一些视频教程传到优酷网站上,但我想引入这些视频教程到我的网站,在发表时我发现织梦CMS自带的编辑器又不直接支持优酷等视频网站的引用.所以为了方便教程的发布,特意在网站搜索到本篇教程,详细讲解如 ...

  2. 【行为型】Strategy模式

    策略模式意图将解决问题的算法分别封装成一个个对象的形式,并使这些算法对象相互间可被替换.模式比较简单,对于策略对象结构的设计,可抽象一个抽象基类,并定义好相关算法(纯)虚接口,并由各种具体的实现算法子 ...

  3. Python的多线程实现

    概述 Python虚拟机使用GIL(Global Interpreter Lock,全局解释器锁)来实现互斥线程对共享资源的访问,暂时无法利用多处理器的优势. Python中,thread和threa ...

  4. (C初学) 对数组与指针的一些浅显的理解

    因为课堂上没听懂,又看不懂教科书(<C语言程序设计教程>第3版 谭浩强,张基温编著)上晦涩的表达方式,昨天晚上特意拿<C语言入门经典>这本书自己研究了一晚的数组与指针. 先来一 ...

  5. Foreign Exchange(交换生换位置)

     Foreign Exchange Your non-profit organization (iCORE - international Confederation of Revolver Enth ...

  6. IOS6.0 应用内直接下载程序 不需跳转AppStore -b

    闲来没事看了篇文章 应用内创建应用商店环境,不跳转AppStore. 先武断的想一句:放屁.然后好奇的进去看看,原来是IOS6.0的新特性,顿感惭愧.研究下 SKStoreProductViewCon ...

  7. ubuntu下MySQL安装配置及基本操作

    在linux下安装方法: 分为四种:一: 直接用软件仓库自动安装(如:ubuntu下,sudo apt-get install mysql-server; Debain下用yum安装): 二:官网下载 ...

  8. Binary Search Tree Iterator——LeetCode

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...

  9. 用Jpush极光推送实现抓取特定某个用户Log到七牛云服务器

    场景 我们的app常常会出现某个特定用户的手机出现异常情况,(注意不是所有用户,特定机型特定用户)如果用友盟,那么多log你也抓不完 ,看不到log就无法解决问题. 那么问题来了,如何实现对特定某个用 ...

  10. 【转】SqlLite .Net 4.0 System.IO.FileLoadException”类型的未经处理的异常出现在XXX

    原文地址:http://www.csharpcity.com/2010/sqlite-ado-net-c-4-0/ ---------------------- 解决方法: Paste the fol ...