下面通过实例代码给大家分享5种android对话框,具体内容详情如下所示:

1 弹出普通对话框 --- 系统更新
2 自定义对话框-- 用户登录
3 时间选择对话框 -- 时间对话框
4 进度条对话框 -- 信息加载..
5 popuWindow对话框
1 弹出普通对话框 --- 系统更新
//弹出普通对话框
public void showNormalDialog(View v) {
AlertDialog.Builder builder = new Builder(this);
//设置Dialog的图标
builder.setIcon(R.drawable.ic_launcher);
//设置对话框的标题
builder.setTitle("更新");
//设置message
builder.setMessage("发现新版本是否更新?");
//确定按钮 取消按钮
builder.setPositiveButton("确定",new OnClickListener() {
/**
* 点击确定按钮 回调该方法
*/
@Override
public void onClick(DialogInterface dialog, int which) {
//到服务器去下载新的版本 duration单词意思:时长
Toast.makeText(MainActivity.this, "开始下载新版本", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new OnClickListener() {
/**
* 点击取消按钮 回调该方法
*/
@Override
public void onClick(DialogInterface dialog, int which) {
//到服务器去下载新的版本 duration单词意思:时长
Toast.makeText(MainActivity.this, "不需要更新", Toast.LENGTH_SHORT).show();
}
});
builder.setNeutralButton("下一次", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//到服务器去下载新的版本 duration单词意思:时长
Toast.makeText(MainActivity.this, "下一次吧", Toast.LENGTH_SHORT).show();
}
});
//通过建造这老构建一个对话框
Dialog dialog = builder.create();
//显示
dialog.show();
}
2 自定义对话框-- 用户登录
布局文件:
user_name_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dip"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="登录信息"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:" />
<EditText android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入用户名"/>
<TextView
android:id="@+id/tv_pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密 码:" />
<EditText android:id="@+id/et_pwd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="请输入密码"/>
<requestFocus />
<Button
android:id="@+id/btn_confirm"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="登录" />
<Button
android:id="@+id/btn_cancel"
android:layout_width="150dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="取消" />
</LinearLayout>
java代码:
//自定义对话框
Dialog cus_dialog ;
public void showCustomDialog(View v){
AlertDialog.Builder builder = new Builder(this);
// 布局填充器
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.user_name_dialog, null);
// 设置自定义的对话框界面
builder.setView(view);
// 获取用户名密码
final EditText name = (EditText) view.findViewById(R.id.et_name);
final EditText pwd = (EditText) view.findViewById(R.id.et_pwd);
Button btn_confirm = (Button) view.findViewById(R.id.btn_confirm);
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
if(name.getText().toString().trim().equals("abc")){
showToastMsg("用户名正确");
// 对话框消失
cus_dialog.dismiss();
}
else{
showToastMsg("用户名错误");
}
}
});
Button btnCancel = (Button) view.findViewById(R.id.btn_cancel);
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 对话框消失
cus_dialog.dismiss();
}
});
cus_dialog = builder.create();
cus_dialog.show();
}
下载地址:http://www.jinhusns.com/Products/Download/?type=yhq
3 时间选择对话框 -- 时间对话框
// 时间选择对话框
public void showTimePickerDialog(View v){
Calendar sysDate = Calendar.getInstance();
//设置系统时间
sysDate.setTimeInMillis(System.currentTimeMillis());
int hour = sysDate.get(Calendar.HOUR_OF_DAY);
int minute = sysDate.get(Calendar.MINUTE);
TimePickerDialog time = new TimePickerDialog(this,
new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// TODO 自动生成的方法存根
showToastMsg(" hourOfDay:" + hourOfDay + " minute:" + minute);
}
}, //callBack 选择时间后的回调方法
hour,//hourOfDay 当前系统时间
minute,//hourOfDay 当前系统时间
true);//是否24小时制
time.show();
}
4 进度条对话框 -- 信息加载..
/**
* 进度条对话框
* @param v
*/
public void showProgressDialog(View v){
final ProgressDialog progress = new ProgressDialog(this);
progress.setProgress(R.drawable.img2);
progress.setTitle("标题");
progress.setMessage("加载中...");
//样式1 进度条样式
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//样式2 有加载图标
//progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//最大
progress.setMax(100);
//当前
progress.setProgress(50);
progress.setButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
showToastMsg("确定按钮");
}
});
progress.setButton2("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
showToastMsg("取消按钮");
}
});
progress.show();
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int i = 0;
while (i < 100) {
try {
Thread.sleep(200);
// 更新进度条的进度,可以在子线程中更新进度条进度
progress.incrementProgressBy(5);
// progress.incrementSecondaryProgressBy(10);//二级进度条更新方式
i += 5;
} catch (Exception e) {
// TODO: handle exception
}
}
// 在进度条走完时删除Dialog
progress.dismiss();
}
}).start();
}
5 popuWindow对话框
Button btn_popu;
//popuWindow对话框
public void showPopuWindow(View v){
btn_popu = (Button) v;
// 设置布局
View view = LayoutInflater.from(this).inflate(R.layout.pop_window, null);
PopupWindow window = new PopupWindow(this);
window.setContentView(view);
window.setWidth(360);
window.setHeight(200);
int[] location = new int[2];
// 获取按钮坐标
btn_popu.getLocationInWindow(location);
window.setFocusable(true);
window.setBackgroundDrawable(getResources().getDrawable(R.drawable.back_null));
window.showAtLocation(btn_popu, Gravity.LEFT |Gravity.TOP , location[0]+ btn_popu.getWidth(), location[1] + 0 );
//showToastMsg("" + (location[0]+ btn_popu.getWidth())+" "+ (location[1] + btn_popu.getHeight() / 2));
ImageView img_start = (ImageView) view.findViewById(R.id.img_start);
img_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
showToastMsg("点击了启动");
}
});
}
总结
以上所述是小编给大家介绍的详解Android开发之对话框案例详解(五种对话框),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# android
# 开发对话框
# Android开发之缓冲dialog对话框创建、使用与封装操作
# Android开发之基于DialogFragment创建对话框的方法示例
# Android开发之利用Activity实现Dialog对话框
# Android开发入门之对话框简单用法
# Android开发必知 九种对话框的实现方法
# android开发教程之时间对话框核心代码
# 对话框
# 进度条
# 自动生成
# 自定义
# 弹出
# 回调
# 时长
# 给大家
# 请输入
# 加载
# 用户登录
# 新版本
# 小编
# 在此
# 下载地址
# 不需要
# 所示
# 五种
# 所述
# 给我留言
相关文章:
如何零基础在云服务器搭建WordPress站点?
建站之星代理如何获取技术支持?
家庭服务器如何搭建个人网站?
建站之星多图banner生成与模板自定义指南
婚礼视频制作网站,学习*后期制作的网站有哪些?
北京企业网站设计制作公司,北京铁路集团官方网站?
建站之星客服服务时间及联系方式如何?
C++如何使用std::optional?(处理可选值)
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
,如何利用word制作宣传手册?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何在Golang中使用replace替换模块_指定本地或远程路径
如何访问已购建站主机并解决登录问题?
制作证书网站有哪些,全国城建培训中心证书查询官网?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
如何通过PHP快速构建高效问答网站功能?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
韩国服务器如何优化跨境访问实现高效连接?
建站之星会员如何解锁更多建站功能?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
上海网站制作开发公司,上海买房比较好的网站有哪些?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
jQuery 常见小例汇总
浅析上传头像示例及其注意事项
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站主机助手选型指南:2025年热门推荐与高效部署技巧
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
已有域名如何快速搭建专属网站?
网站制作免费,什么网站能看正片电影?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
常州企业网站制作公司,全国继续教育网怎么登录?
Android使用GridView实现日历的简单功能
广德云建站网站建设方案与建站流程优化指南
建站之星如何助力网站排名飙升?揭秘高效技巧
香港服务器租用每月最低只需15元?
如何通过建站之星自助学习解决操作问题?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在香港服务器上快速搭建免备案网站?
学校为何禁止电信移动建设网站?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
高防服务器租用首荐平台,企业级优惠套餐快速部署
,网页ppt怎么弄成自己的ppt?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
C#如何使用XPathNavigator高效查询XML
*请认真填写需求信息,我们会在24小时内与您取得联系。