欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 对话框 Dialog使用实例讲解

程序员文章站 2024-03-07 09:37:14
对话框 dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息,或显示某种状态.如 : 显示进度条对...

对话框 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(); 
} 
} 

Android 对话框 Dialog使用实例讲解

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使用实例讲解

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