Android下常见的四种对话框
摘要:在实际开发过程有时为了能够和用户进行很好的交互,需要使用到对话框,在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下常见的四种对话框的更多相关文章
- Android学习笔记_3_四种布局
Android布局是应用界面开发的重要一环,在Android中,共有四种布局方式, 分别是:FrameLayout( 帧布局 ).LinearLayout (线性布局).TableLayout(表格布 ...
- Android下常见动画
摘要:Android中常见的的动画有三种:属性动画.补间动画.帧动画. 注.因为前两种内容较多,后补 一.属性动画 二.补间动画 三.帧动画:本质是将一些连贯的图片加载形成连贯的动画效果 1.在Dra ...
- Android中Activity的四种启动模式
要了解Android的启动模式先要了解一下Activity的管理方式: 1.Activity的管理机制 Android的管理主要是通过Activity栈来进行的.当一个Activity启动时,系统根据 ...
- android 数据存储的四种方式.
Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...
- HttpRequest中常见的四种Content-Type(转)
add by zhj: Content-Type用于说明request body的编码格式的,对于没有request body的http method如GET,HEAD没有必要设置这个参数,当然,你设 ...
- android数据存取的四种方式
Android系统下有四种数据的存在形式,分别是SQLite,SharePreference,File,ContentProvider.一:特性介绍:SQLite:对于大多数开发者而言,这应该是大家非 ...
- Android的taskAffinity对四种launchMode的影响
在Android系统中,一个application的所有Activity默认有一个相同的affinity(亲密关系,相似之处).也就是说同一个应用程序的的所有Activity倾向于属于同一个task. ...
- Android中Activity的四种启动方式
谈到Activity的启动方式必须要说的是数据结构中的栈.栈是一种只能从一端进入存储数据的线性表,它以先进后出的原则存储数据,先进入的数据压入栈底,后进入的数据在栈顶.需要读取数据的时候就需要从顶部开 ...
- Robot Framework--接口测试中常见的四种POST方式
写接口测试用例时,遇到以json格式提交数据时,报错,Request如下图: Response如下图: 改成form格式提交,可以正常运行,如下图: 代码如下: ------------------- ...
随机推荐
- css实现一个写信的格式
一.目标 目标实现如下效果: 二.完成 1.分析 这个效果看起来很简单,实际上可能并不那么容易实现. 首先是全部东西都居中显示,除了“亲爱的starof”这个称呼的地方.这也是难点,也是本文要重点说的 ...
- HashMap的工作原理深入再深入
前言 首先再次强调hashcode (==)和equals的真正含义(我记得以前有人会说,equals是判断对象内容,hashcode是判断是否相等之类): equals:是否同一个对象实例.注意,是 ...
- 以后上午就只能这样了么-jQuery
hi 昨天睡得不错 为什么早上还是看不进论文,宁愿做这个,也不愿认真看论文.感觉上还是下午看论文感觉要好的多.不过最近有三十多篇要看哇...管球... 1.jQuery -----jQuery常用插件 ...
- 创建简单的机器人模型smartcar
前面我们使用的是已有的机器人模型进行仿真,这一节我们将建立一个简单的智能车机器人 smartcar,为后面建立复杂机器人打下基础. 一.创建硬件描述包. cd ~/catkin_ws/srcroscr ...
- [No00000D]word如何批量删除超链接 怎么去掉网址保留文字
1.删除超链接的文字及网址 这种情况是想把带有网址的文字统统删掉,文字和网址一概不留. 首先在word界面按下ALT+F9(在所有的域代码及其结果间进行切换.),超链接文本会被转换成代码的样式. 例如 ...
- java (基本语法)
2.五大内存区 方法区就是存储共享数据的地方 3.一个实体多处引用 只有还有实体被指向,这个实体就不能消失.当所有的指向都消失之后,这个实体被视为垃圾,被垃圾回收机制不定期的回收. 堆里的实体能存储多 ...
- EF的入门使用 (电影管理)
控制器代码: public class HomeController : Controller { private NewDBContext ndc = new NewDBContext(); pub ...
- 判断一个变量的类型Object.prototype.toString.call
var num = 1;alert(Object.prototype.toString.call(num)); // [object Number]var str = 'hudidit.com';al ...
- c#中序列化
序列化(Serialization)是.NET平台的特性之一.1.为什么要序列化:首先你应该明白系列化的目的就不难理解他了.系列化的目的就是能在网络上传输对象,否则就无法实现面向对象的分布式计算.比如 ...
- docker中如何制作自己的基础镜像
一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...