摘要:在实际开发过程有时为了能够和用户进行很好的交互,需要使用到对话框,在Android中常用的对话框有四种:普通对话框、单选对话框、多选对话框、进度对话框。

一、普度对话框

  public void click(View view)
{
//this代表MainActivity是子类 getApplicationContext代表context是父类
//对话框不能用getApplicationContext
AlertDialog.Builder builder = new AlertDialog.Builder(this);//getApplicationContext());
builder.setTitle("警告");
builder.setMessage("世界上最遥远的距离是没有网络");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
Toast.makeText(mContext, "点击了确定了按钮", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("确定", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
Toast.makeText(mContext, "点击了取消了按钮", Toast.LENGTH_SHORT).show();
}
});
builder.show();
}

二、单选对话框

   public void click(View view)
{
final AlertDialog.Builder builder = new AlertDialog.Builder(this);//getApplicationContext());
builder.setTitle("请选择你喜欢的课");
final String item[] = {"android", "java", "c", "c++"};
builder.setSingleChoiceItems(item, -1, new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
String s = item[i];
Toast.makeText(mContext, s, Toast.LENGTH_SHORT).show();
dialogInterface.dismiss();
}
});
builder.show();
}

三、多选对话框

 public void click(View view)
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);//getApplicationContext());
builder.setTitle("请选出你喜欢的水果");
final String[] item = {"苹果", "榴莲", "荔枝", "黄瓜", "香蕉"};
final boolean[] checkChoisce = {true, false, false, false, true};
builder.setMultiChoiceItems(item, checkChoisce, new DialogInterface.OnMultiChoiceClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b)
{
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
Toast.makeText(mContext, "点击了确定了按钮", Toast.LENGTH_SHORT).show();
StringBuffer sb = new StringBuffer();
for (int j = 0; j < item.length; j ++)
{
if (checkChoisce[j])
{
String s = item[j];
sb.append(s);
}
}
Toast.makeText(mContext, sb.toString(), Toast.LENGTH_SHORT).show();
dialogInterface.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialogInterface, int i)
{
Toast.makeText(mContext, "点击了取消了按钮", Toast.LENGTH_SHORT).show();
}
});
builder.show();
}

四、进度对话框

   public void click(View view)
{
//与进度相关的UI都可以在子线程更新UI
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("玩命加载中");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.show();
new Thread(){public void run(){
for (int i = 0; i < 100; i ++)
{
SystemClock.sleep(50);
dialog.setProgress(i);
}
dialog.dismiss();
}}.start();
}

Android下常见的四种对话框的更多相关文章

  1. Android学习笔记_3_四种布局

    Android布局是应用界面开发的重要一环,在Android中,共有四种布局方式, 分别是:FrameLayout( 帧布局 ).LinearLayout (线性布局).TableLayout(表格布 ...

  2. Android下常见动画

    摘要:Android中常见的的动画有三种:属性动画.补间动画.帧动画. 注.因为前两种内容较多,后补 一.属性动画 二.补间动画 三.帧动画:本质是将一些连贯的图片加载形成连贯的动画效果 1.在Dra ...

  3. Android中Activity的四种启动模式

    要了解Android的启动模式先要了解一下Activity的管理方式: 1.Activity的管理机制 Android的管理主要是通过Activity栈来进行的.当一个Activity启动时,系统根据 ...

  4. android 数据存储的四种方式.

    Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...

  5. HttpRequest中常见的四种Content-Type(转)

    add by zhj: Content-Type用于说明request body的编码格式的,对于没有request body的http method如GET,HEAD没有必要设置这个参数,当然,你设 ...

  6. android数据存取的四种方式

    Android系统下有四种数据的存在形式,分别是SQLite,SharePreference,File,ContentProvider.一:特性介绍:SQLite:对于大多数开发者而言,这应该是大家非 ...

  7. Android的taskAffinity对四种launchMode的影响

    在Android系统中,一个application的所有Activity默认有一个相同的affinity(亲密关系,相似之处).也就是说同一个应用程序的的所有Activity倾向于属于同一个task. ...

  8. Android中Activity的四种启动方式

    谈到Activity的启动方式必须要说的是数据结构中的栈.栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶.需要读取数据的时候就需要从顶部开 ...

  9. Robot Framework--接口测试中常见的四种POST方式

    写接口测试用例时,遇到以json格式提交数据时,报错,Request如下图: Response如下图: 改成form格式提交,可以正常运行,如下图: 代码如下: ------------------- ...

随机推荐

  1. css实现一个写信的格式

    一.目标 目标实现如下效果: 二.完成 1.分析 这个效果看起来很简单,实际上可能并不那么容易实现. 首先是全部东西都居中显示,除了“亲爱的starof”这个称呼的地方.这也是难点,也是本文要重点说的 ...

  2. HashMap的工作原理深入再深入

    前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例.注意,是 ...

  3. 以后上午就只能这样了么-jQuery

    hi 昨天睡得不错 为什么早上还是看不进论文,宁愿做这个,也不愿认真看论文.感觉上还是下午看论文感觉要好的多.不过最近有三十多篇要看哇...管球... 1.jQuery -----jQuery常用插件 ...

  4. 创建简单的机器人模型smartcar

    前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人 smartcar,为后面建立复杂机器人打下基础. 一.创建硬件描述包. cd ~/catkin_ws/srcroscr ...

  5. [No00000D]word如何批量删除超链接 怎么去掉网址保留文字

    1.删除超链接的文字及网址 这种情况是想把带有网址的文字统统删掉,文字和网址一概不留. 首先在word界面按下ALT+F9(在所有的域代码及其结果间进行切换.),超链接文本会被转换成代码的样式. 例如 ...

  6. java (基本语法)

    2.五大内存区 方法区就是存储共享数据的地方 3.一个实体多处引用 只有还有实体被指向,这个实体就不能消失.当所有的指向都消失之后,这个实体被视为垃圾,被垃圾回收机制不定期的回收. 堆里的实体能存储多 ...

  7. EF的入门使用 (电影管理)

    控制器代码: public class HomeController : Controller { private NewDBContext ndc = new NewDBContext(); pub ...

  8. 判断一个变量的类型Object.prototype.toString.call

    var num = 1;alert(Object.prototype.toString.call(num)); // [object Number]var str = 'hudidit.com';al ...

  9. c#中序列化

    序列化(Serialization)是.NET平台的特性之一.1.为什么要序列化:首先你应该明白系列化的目的就不难理解他了.系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算.比如 ...

  10. docker中如何制作自己的基础镜像

    一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...