本文主要讨论七种形式的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. APP的测试过程和重点

    APP的测试过程和重点 1.首先是测试资源确认及准备 (1)产品需求文档.产品原型图.接口说明文档以及设计说明文档等应齐全: (2)测试设备及工具的准备:IOS和andriod不同版本的真机,以及相关 ...

  2. phpinfo.php

    ---恢复内容开始--- apache中的配置不对 查看httpd.conf文件中是否有: AddType ...... AddType application/x-httpd-php .php -- ...

  3. Activity完整的生命周期

    首语:群里看到一位网友说:你能说出Activity的完整生命周期吗?看到这句话,我也在反思自己,我也是个fresh,所以想找个时间仔细的扒一扒Activity生命周期. 首先拿一张简单而又复杂的生命周 ...

  4. C:\WINDOWS\system32\config\systemprofile\Desktop引用了一个不可用的位置

    使用迅雷下载压缩文件到桌面时,下载完毕后,如果直接点击"打开文件",则迅雷会报错: C:\WINDOWS\system32\config\systemprofile\Desktop ...

  5. 转:微博CacheService架构浅析

    文章来自于:http://www.infoq.com/cn/articles/weibo-cacheservice-architecture 微博作为国内最大的社交媒体网站之一,每天承载着亿万用户的服 ...

  6. 转:PHP教程之PHP调用session_start后页面始终加载的问题研究

    今天群里有朋友说他的遇到一个有趣的问题: 一个PHP页面的执行时间比较长(15秒左右),而只要这个页面没有执行完毕,其他的页面访问都是长时间加载状态,只有那个页面执行完毕了,剩下的页面才能打开. 这是 ...

  7. Signing key has not been configured

    Signing key has not been configured.https://dev.openwrt.org/changeset/38284 Add package signing key ...

  8. ASPNET异步删除和增加

    function InitList() { $.getJSON("GetNewsList.ashx", {}, function (data) { for (var i = 0; ...

  9. HDOJ 2131 Probability

    Problem Description Mickey is interested in probability recently. One day , he played a game which i ...

  10. HDU4757--Tree 可持久化trie + LCA

    题意:n个点的树,Q次询问,询问u-v路径上的点的权值与z抑或的最大值. 先考虑,在一个区间上的问题,可以先建一个可持久化的Trie,然后每次询问,就和线段树的操作差不多,从最高位开始考虑选1还是选0 ...