Android 对话框 Dialog使用实例讲解

Android 对话框 Dialog使用实例讲解,第1张

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

对话框 Dialog

什么是对话框

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

对话框的特点:

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

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,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("登陆",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,int which) { // 把当前选中的Item的下标 赋值给全局的变量 position position = which; } }); builder.setPositivebutton("确定",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("确定",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,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使用实例讲解全部内容,希望文章能够帮你解决Android 对话框 Dialog使用实例讲解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1148268.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存