当前位置: 移动技术网 > IT编程>移动开发>Android > Android 对话框 Dialog使用实例讲解

Android 对话框 Dialog使用实例讲解

2019年07月24日  | 移动技术网IT编程  | 我要评论

少龙风流全集下载,蒋雨近况,山西王家岭煤矿透水事故

对话框 dialog

什么是对话框

对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对话框, 退出提示.

对话框的特点:

1, 当前界面弹出的小窗口.

2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户.

常用对话框:

1, 普通对话框 alertdialog

2, 进度条对话框 progressdialog

3, 日期对话框 datepickerdialog

4, 时间对话框 timepickerdialog

5, 自定义对话框

常用普通对话框 alertdialog

1, 普通列表对话框 setitems -- onclicklistener

2, 单选对话框 setsinglechoiceitems -- onclicklistener

3, 多选对话框 setmultichoiceitems --- > onmultichoiceclicklistener

4, 适配器对话框 setadapter -- onclicklistener

package com.qf.day11_dialog_01; 
import java.util.calendar; 
import android.app.activity; 
import android.app.alertdialog; 
import android.app.datepickerdialog; 
import android.app.datepickerdialog.ondatesetlistener; 
import android.app.progressdialog; 
import android.app.timepickerdialog; 
import android.app.timepickerdialog.ontimesetlistener; 
import android.content.dialoginterface; 
import android.content.dialoginterface.onclicklistener; 
import android.os.bundle; 
import android.view.view; 
import android.widget.datepicker; 
import android.widget.edittext; 
import android.widget.timepicker; 
import android.widget.toast; 
public class mainactivity extends activity { 
private edittext name; 
private edittext pwd; 
@override 
protected void oncreate(bundle savedinstancestate) { 
super.oncreate(savedinstancestate); 
setcontentview(r.layout.activity_main); 
} 
public void showalertdialog(view v) 
{ 
//1, 定义普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(mainactivity.this); 
//2, 构建对话框 
builder.seticon(r.drawable.img_23);//设置图标 
builder.settitle("提示");//设置标题 
builder.setmessage("是否确认退出?");//设置内容 
//设置取消按钮 
/** 
* text 按钮显示的文字 
* listener 按钮对应的监听器 
*/ 
builder.setnegativebutton("取消", null); 
//设置确定按钮 
builder.setpositivebutton("确定", new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
finish(); 
} 
}); 
//3, 显示对话框 
builder.show(); 
} 
public void showprogressdialog(view v) 
{ 
//1, 得到progressdialog的对象 
progressdialog pdialog = new progressdialog(this); 
//2, 构建对话框 
pdialog.seticon(r.drawable.img_14); 
pdialog.settitle("提示"); 
pdialog.setmessage("正在加载, 请稍后...."); 
pdialog.setcancelable(true);//是否可撤销 true 可以 false 不可以 
//设置进度条对话框的样式 
//progressdialog.style_horizontal 水平的 
//progressdialog.style_spinner 转圈的 
pdialog.setprogressstyle(progressdialog.style_horizontal); 
//3, 显示对话框 
pdialog.show(); 
//pdialog.dismiss();//对话框消失 
pdialog.setprogress(50);//设置进度值, 在显示对话后,才可以设置 
} 
public void showdatepickerdialog(view v) 
{ 
//获取系统的当前日期 
calendar calendar = calendar.getinstance(); 
int year = calendar.get(calendar.year); 
int monthofyear = calendar.get(calendar.month); 
int dayofmonth = calendar.get(calendar.day_of_month); 
//1, 创建带有日期选择器的对话框 
/** 
* context 上下文对象 
* callback ondatesetlistener(日期选择器上的"确定"按钮监听器) 
* year 默认的年 
* monthofyear 默认的月份 
* dayofmonth 默认的日期 
*/ 
datepickerdialog dpdialog = new datepickerdialog(this,new ondatesetlistener() { 
/** 
* datepicker view 日期选择器 
*/ 
@override 
public void ondateset(datepicker view, int year, int monthofyear, 
int dayofmonth) { 
//选择后的日期监听 
toast.maketext(mainactivity.this, year+"-"+(monthofyear+1)+"-"+dayofmonth, toast.length_short).show(); 
} 
}, year, monthofyear, dayofmonth); 
//2, 显示对话框 
dpdialog.show(); 
} 
public void showtimepickerdialog(view v) 
{ 
//1, 创建带有时间选择器的对话框 
/** 
* context 上下文对象 
* callback ontimesetlistener 
* hourofday 默认的小时 
* minute 默认的分钟数 
* is24hourview 是否24小时制 
*/ 
timepickerdialog tpdialog = new timepickerdialog(this, new ontimesetlistener() { 
@override 
public void ontimeset(timepicker view, int hourofday, int minute) { 
toast.maketext(mainactivity.this, hourofday + " :" + minute, toast.length_short).show(); 
} 
}, 15, 17, true); 
//2, 显示对话框 
tpdialog.show(); 
} 
//自定义对话框(在普通对话框基础上实现) 
public void showcustomdialog(view v) 
{ 
//1, 得到普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(this); 
//2, 构建对话框 
builder.seticon(r.drawable.img_23); 
builder.settitle("用户登陆"); 
//3, 为对话框设置自定义的视图 
view view = getlayoutinflater().inflate(r.layout.login, null); 
name = (edittext) view.findviewbyid(r.id.name); 
pwd = (edittext) view.findviewbyid(r.id.pwd); 
builder.setview(view); 
//为对话框添加 按钮 
builder.setnegativebutton("取消", null); 
builder.setpositivebutton("登陆", new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
string info = name.gettext().tostring()+", "+ pwd.gettext().tostring(); 
toast.maketext(mainactivity.this, info, toast.length_short).show(); 
} 
}); 
//4, 显示对话框 
builder.show(); 
} 
} 

package com.qf.day11_dialog_02; 
import android.app.activity; 
import android.app.alertdialog; 
import android.content.dialoginterface; 
import android.content.intent; 
import android.content.dialoginterface.onclicklistener; 
import android.content.dialoginterface.onmultichoiceclicklistener; 
import android.graphics.color; 
import android.os.bundle; 
import android.view.view; 
import android.widget.arrayadapter; 
import android.widget.textview; 
public class mainactivity extends activity { 
private textview tv; 
private int position;//单选列表的 中间转接 
@override 
protected void oncreate(bundle savedinstancestate) { 
super.oncreate(savedinstancestate); 
setcontentview(r.layout.activity_main); 
tv = (textview) findviewbyid(r.id.tv); 
} 
//普通列表对话框 
public void showcommon(view v) 
{ 
//1, 得到普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(this); 
builder.seticon(r.drawable.ic_launcher); 
builder.settitle("选择颜色"); 
//2, 设置列表 
//getresources().getstringarray(id) 
builder.setitems(r.array.colors, new onclicklistener() { 
/** 
* dialoginterface dialog 对话框 
* int which 当前选中的item 从0开始 
*/ 
@override 
public void onclick(dialoginterface dialog, int which) { 
switch (which) { 
case 0: 
tv.settextcolor(color.red); 
break; 
case 1: 
tv.settextcolor(color.green); 
break; 
case 2: 
tv.settextcolor(color.blue); 
break; 
} 
} 
}); 
//3, 显示对话框 
builder.show(); 
} 
//单选列表 
public void showsingle(view v) 
{ 
//1, 得到普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(this); 
builder.seticon(r.drawable.ic_launcher); 
builder.settitle("设置文字大小"); 
//2, 设置单选列表 
/** 
* items 选项资源的id r.array.sizes 
* checkeditem 默认选中的item的下标, 如果没有默认选中, 那么设置为-1 
* listener 监听器 
*/ 
builder.setsinglechoiceitems(r.array.sizes, -1, new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
// 把当前选中的item的下标 赋值给全局的变量 position 
position = which; 
} 
}); 
builder.setpositivebutton("确定", new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
// todo 根据全局的position 判断该执行什么样的操作 
switch (position) { 
case 0: 
tv.settextsize(20); 
break; 
case 1: 
tv.settextsize(30); 
break; 
case 2: 
tv.settextsize(40); 
break; 
} 
} 
}); 
//3, 显示对话框 
builder.show(); 
} 
//多选列表 
public void showmulti(view v) 
{ 
//1, 得到普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(this); 
builder.seticon(r.drawable.ic_launcher); 
builder.settitle("设置内容"); 
//2, 设置多选列表 
/** 
* items 资源的id 
* checkeditems 当前选中的item 
* listener 监听器 
*/ 
//得到所有的数据 
final string[] hobbys = getresources().getstringarray(r.array.hobbys); 
//选中的item 
final boolean[] checkeditems = new boolean[hobbys.length]; 
builder.setmultichoiceitems(r.array.hobbys, checkeditems, new onmultichoiceclicklistener() { 
/** 
* dialoginterface dialog 当前对话框 
* int which 当前选择的item下标 
* boolean ischecked 当前选择item的状态 
*/ 
@override 
public void onclick(dialoginterface dialog, int which, boolean ischecked) { 
//改变boolean[] 中状态 
checkeditems[which] = ischecked; 
} 
}); 
builder.setpositivebutton("确定", new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
stringbuilder sbuilder = new stringbuilder(); 
for(int i=0;i<checkeditems.length;i++) 
{ 
if(checkeditems[i]) 
{ 
sbuilder.append(hobbys[i]).append(" "); 
} 
} 
tv.settext(sbuilder.tostring()); 
} 
}); 
//3, 显示对话框 
builder.show(); 
} 
//适配器列表 
public void showadapter(view v) 
{ 
//1, 得到普通对话框的构建者 
alertdialog.builder builder = new alertdialog.builder(this); 
builder.seticon(r.drawable.ic_launcher); 
builder.settitle("选择设置"); 
//2, 设置适配器 
string[] data = getresources().getstringarray(r.array.settings); 
arrayadapter<string> adapter = new arrayadapter<string>(this, 
android.r.layout.simple_list_item_1, 
data); 
builder.setadapter(adapter, new onclicklistener() { 
@override 
public void onclick(dialoginterface dialog, int which) { 
intent intent = new intent(); 
switch (which) { 
case 0: 
intent.setaction("android.settings.wifi_settings"); 
break; 
case 1: 
intent.setaction("android.settings.sound_settings"); 
break; 
case 2: 
intent.setaction("android.settings.settings"); 
break; 
} 
startactivity(intent); 
} 
}); 
//3, 显示对话框 
//builder.show(); 
builder.create().show(); 
} 
} 

以上所述是小编给大家介绍的android 对话框 dialog使用实例讲解,希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网