android UI 对话框大全


个人第一篇博客,以前一直有写博客的想法,由于实在忙的没时间,直到最近开始把以前的Pad版移植到手机端,才略微有些空闲时间整理本身的技术经验,前言就是为了记念下吧,2016.09.06,既然投身了这个行业,那么不要怂就是干吧.
java


对话框 Dialogandroid


什么是对话框

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

       对话框的特色:

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

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

      经常使用对话框:

1, 普通对话框 AlertDialog

2, 进度条对话框  ProgressDialog

3, 日期对话框    DatePickerDialog

4, 时间对话框    TimePickerDialog

5, 自定义对话框  

     经常使用普通对话框  AlertDialog

1, 普通列表对话框    setItems  -- onClickListener

2, 单选对话框     setSingleChoiceItems -- onClickListener

3, 多选对话框     setMultiChoiceItems  --- > onMultiChoiceClickListener 

4, 适配器对话框      setAdapter -- onClickListenerapp

  1. package com.qf.day11_dialog_01;  
  2.   
  3. import java.util.Calendar;  
  4.   
  5. import android.app.Activity;  
  6. import android.app.AlertDialog;  
  7. import android.app.DatePickerDialog;  
  8. import android.app.DatePickerDialog.OnDateSetListener;  
  9. import android.app.ProgressDialog;  
  10. import android.app.TimePickerDialog;  
  11. import android.app.TimePickerDialog.OnTimeSetListener;  
  12. import android.content.DialogInterface;  
  13. import android.content.DialogInterface.OnClickListener;  
  14. import android.os.Bundle;  
  15. import android.view.View;  
  16. import android.widget.DatePicker;  
  17. import android.widget.EditText;  
  18. import android.widget.TimePicker;  
  19. import android.widget.Toast;  
  20.   
  21. public class MainActivity extends Activity {  
  22.   
  23.     private EditText name;  
  24.     private EditText pwd;  
  25.   
  26.     @Override  
  27.     protected void onCreate(Bundle savedInstanceState) {  
  28.         super.onCreate(savedInstanceState);  
  29.         setContentView(R.layout.activity_main);  
  30.     }  
  31.   
  32.     public void showAlertDialog(View v)  
  33.     {  
  34.         //1, 定义普通对话框的构建者  
  35.         AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);  
  36.           
  37.         //2, 构建对话框  
  38.         builder.setIcon(R.drawable.img_23);//设置图标  
  39.         builder.setTitle("提示");//设置标题  
  40.         builder.setMessage("是否确认退出?");//设置内容  
  41.           
  42.         //设置取消按钮    
  43.         /** 
  44.          * text         按钮显示的文字 
  45.          * listener     按钮对应的监听器 
  46.          */  
  47.         builder.setNegativeButton("取消"null);  
  48.           
  49.         //设置肯定按钮  
  50.         builder.setPositiveButton("肯定"new OnClickListener() {  
  51.               
  52.             @Override  
  53.             public void onClick(DialogInterface dialog, int which) {  
  54.                   
  55.                 finish();  
  56.             }  
  57.         });  
  58.           
  59.         //3, 显示对话框  
  60.         builder.show();  
  61.     }  
  62.   
  63.     public void showProgressDialog(View v)  
  64.     {  
  65.         //1, 获得ProgressDialog的对象  
  66.         ProgressDialog pDialog = new ProgressDialog(this);  
  67.           
  68.         //2, 构建对话框  
  69.         pDialog.setIcon(R.drawable.img_14);  
  70.         pDialog.setTitle("提示");  
  71.         pDialog.setMessage("正在加载, 请稍后....");  
  72.         pDialog.setCancelable(true);//是否可撤销  true 能够  false 不能够  
  73.           
  74.         //设置进度条对话框的样式  
  75.         //ProgressDialog.STYLE_HORIZONTAL  水平的  
  76.         //ProgressDialog.STYLE_SPINNER     转圈的  
  77.         pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
  78.           
  79.           
  80.         //3, 显示对话框  
  81.         pDialog.show();  
  82.         //pDialog.dismiss();//对话框消失  
  83.           
  84.         pDialog.setProgress(50);//设置进度值,  在显示对话后,才能够设置  
  85.           
  86.     }  
  87.   
  88.     public void showDatePickerDialog(View v)  
  89.     {  
  90.         //获取系统的当前日期  
  91.         Calendar calendar = Calendar.getInstance();  
  92.         int year  = calendar.get(Calendar.YEAR);  
  93.         int monthOfYear = calendar.get(Calendar.MONTH);  
  94.         int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);  
  95.           
  96.         //1, 建立带有日期选择器的对话框  
  97.         /** 
  98.          * context      上下文对象 
  99.          * callBack     onDateSetListener(日期选择器上的"肯定"按钮监听器) 
  100.          * year         默认的年 
  101.          * monthOfYear  默认的月份 
  102.          * dayOfMonth   默认的日期 
  103.          */  
  104.         DatePickerDialog dPDialog  = new DatePickerDialog(this,new OnDateSetListener() {  
  105.               
  106.             /** 
  107.              * DatePicker view  日期选择器 
  108.              */  
  109.             @Override  
  110.             public void onDateSet(DatePicker view, int year, int monthOfYear,  
  111.                     int dayOfMonth) {  
  112.                   
  113.                 //选择后的日期监听  
  114.                 Toast.makeText(MainActivity.this, year+"-"+(monthOfYear+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();  
  115.             }  
  116.         }, year, monthOfYear, dayOfMonth);  
  117.           
  118.           
  119.         //2, 显示对话框  
  120.         dPDialog.show();  
  121.     }  
  122.   
  123.     public void showTimePickerDialog(View v)  
  124.     {  
  125.         //1, 建立带有时间选择器的对话框  
  126.         /** 
  127.          * context    上下文对象 
  128.          * callBack   onTimeSetListener 
  129.          * hourOfDay  默认的小时 
  130.          * minute       默认的分钟数  
  131.          * is24HourView 是否24小时制 
  132.          */  
  133.         TimePickerDialog tpDialog = new TimePickerDialog(thisnew OnTimeSetListener() {  
  134.               
  135.             @Override  
  136.             public void onTimeSet(TimePicker view, int hourOfDay, int minute) {  
  137.                   
  138.                 Toast.makeText(MainActivity.this, hourOfDay + " :" + minute, Toast.LENGTH_SHORT).show();  
  139.             }  
  140.         }, 1517true);  
  141.           
  142.         //2, 显示对话框  
  143.         tpDialog.show();  
  144.     }  
  145.   
  146.     //自定义对话框(在普通对话框基础上实现)  
  147.     public void showCustomDialog(View v)  
  148.     {  
  149.         //1, 获得普通对话框的构建者  
  150.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  151.           
  152.         //2, 构建对话框  
  153.         builder.setIcon(R.drawable.img_23);  
  154.         builder.setTitle("用户登录");  
  155.           
  156.           
  157.         //3, 为对话框设置自定义的视图  
  158.         View view = getLayoutInflater().inflate(R.layout.login, null);  
  159.           
  160.         name = (EditText) view.findViewById(R.id.name);  
  161.           
  162.         pwd = (EditText) view.findViewById(R.id.pwd);  
  163.           
  164.         builder.setView(view);  
  165.           
  166.           
  167.         //为对话框添加 按钮  
  168.         builder.setNegativeButton("取消"null);  
  169.           
  170.         builder.setPositiveButton("登录"new OnClickListener() {  
  171.               
  172.             @Override  
  173.             public void onClick(DialogInterface dialog, int which) {  
  174.                   
  175.                 String info = name.getText().toString()+",   "+ pwd.getText().toString();  
  176.                   
  177.                 Toast.makeText(MainActivity.this, info, Toast.LENGTH_SHORT).show();  
  178.                   
  179.             }  
  180.         });  
  181.           
  182.         //4, 显示对话框  
  183.         builder.show();  
  184.     }  
  185. }  


  1. package com.qf.day11_dialog_02;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.AlertDialog;  
  5. import android.content.DialogInterface;  
  6. import android.content.Intent;  
  7. import android.content.DialogInterface.OnClickListener;  
  8. import android.content.DialogInterface.OnMultiChoiceClickListener;  
  9. import android.graphics.Color;  
  10. import android.os.Bundle;  
  11. import android.view.View;  
  12. import android.widget.ArrayAdapter;  
  13. import android.widget.TextView;  
  14.   
  15. public class MainActivity extends Activity {  
  16.   
  17.     private TextView tv;  
  18.       
  19.     private int position;//单选列表的 中间转接  
  20.       
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.           
  26.         tv = (TextView) findViewById(R.id.tv);  
  27.     }  
  28.   
  29.   
  30.     //普通列表对话框  
  31.     public void showCommon(View v)  
  32.     {  
  33.         //1, 获得普通对话框的构建者  
  34.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  35.           
  36.         builder.setIcon(R.drawable.ic_launcher);  
  37.         builder.setTitle("选择颜色");  
  38.           
  39.         //2, 设置列表  
  40.         //getResources().getStringArray(id)  
  41.         builder.setItems(R.array.colors, new OnClickListener() {  
  42.               
  43.             /** 
  44.              * DialogInterface dialog   对话框 
  45.              * int which                当前选中的item 从0开始 
  46.              */  
  47.             @Override  
  48.             public void onClick(DialogInterface dialog, int which) {  
  49.                   
  50.                 switch (which) {  
  51.                 case 0:  
  52.                       
  53.                     tv.setTextColor(Color.RED);  
  54.                       
  55.                     break;  
  56.   
  57.                 case 1:  
  58.                     tv.setTextColor(Color.GREEN);  
  59.                     break;  
  60.                       
  61.                 case 2:  
  62.                     tv.setTextColor(Color.BLUE);  
  63.                     break;  
  64.                 }  
  65.             }  
  66.         });  
  67.           
  68.         //3, 显示对话框  
  69.         builder.show();  
  70.     }  
  71.       
  72.     //单选列表  
  73.     public void showSingle(View v)  
  74.     {  
  75.         //1, 获得普通对话框的构建者  
  76.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  77.           
  78.         builder.setIcon(R.drawable.ic_launcher);  
  79.         builder.setTitle("设置文字大小");  
  80.           
  81.         //2, 设置单选列表  
  82.         /** 
  83.          * items        选项资源的ID   R.array.sizes 
  84.          * checkedItem  默认选中的item的下标, 若是没有默认选中, 那么设置为-1 
  85.          * listener     监听器 
  86.          */  
  87.         builder.setSingleChoiceItems(R.array.sizes, -1new OnClickListener() {  
  88.               
  89.             @Override  
  90.             public void onClick(DialogInterface dialog, int which) {  
  91.                 // 把当前选中的Item的下标 赋值给全局的变量  position  
  92.                 position = which;  
  93.             }  
  94.         });  
  95.           
  96.         builder.setPositiveButton("肯定"new OnClickListener() {  
  97.               
  98.             @Override  
  99.             public void onClick(DialogInterface dialog, int which) {  
  100.                 // TODO 根据全局的position  判断该执行什么样的操做  
  101.                   
  102.                 switch (position) {  
  103.                 case 0:  
  104.                     tv.setTextSize(20);  
  105.                     break;  
  106.   
  107.                 case 1:  
  108.                     tv.setTextSize(30);  
  109.                     break;  
  110.                       
  111.                 case 2:  
  112.                     tv.setTextSize(40);  
  113.                     break;  
  114.                 }  
  115.             }  
  116.         });  
  117.           
  118.           
  119.         //3, 显示对话框  
  120.         builder.show();  
  121.     }  
  122.   
  123.     //多选列表  
  124.     public void showMulti(View v)  
  125.     {  
  126.         //1, 获得普通对话框的构建者  
  127.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  128.           
  129.         builder.setIcon(R.drawable.ic_launcher);  
  130.         builder.setTitle("设置内容");  
  131.           
  132.         //2, 设置多选列表  
  133.         /** 
  134.          * items        资源的ID 
  135.          * checkedItems 当前选中的Item 
  136.          * listener     监听器 
  137.          */  
  138.         //获得全部的数据  
  139.         final String[] hobbys = getResources().getStringArray(R.array.hobbys);  
  140.         //选中的Item  
  141.         final boolean[] checkedItems =  new boolean[hobbys.length];  
  142.           
  143.         builder.setMultiChoiceItems(R.array.hobbys, checkedItems, new OnMultiChoiceClickListener() {  
  144.               
  145.             /** 
  146.              * DialogInterface dialog   当前对话框 
  147.              * int which                当前选择的Item下标 
  148.              * boolean isChecked        当前选择Item的状态 
  149.              */  
  150.             @Override  
  151.             public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
  152.                   
  153.                 //改变boolean[] 中状态  
  154.                 checkedItems[which] = isChecked;  
  155.             }  
  156.         });  
  157.           
  158.         builder.setPositiveButton("肯定"new OnClickListener() {  
  159.               
  160.             @Override  
  161.             public void onClick(DialogInterface dialog, int which) {  
  162.                   
  163.                 StringBuilder sBuilder = new StringBuilder();  
  164.                   
  165.                 for(int i=0;i<checkedItems.length;i++)  
  166.                 {  
  167.                     if(checkedItems[i])  
  168.                     {  
  169.                         sBuilder.append(hobbys[i]).append("    ");  
  170.                     }  
  171.                       
  172.                 }  
  173.                   
  174.                 tv.setText(sBuilder.toString());  
  175.             }  
  176.         });  
  177.           
  178.         //3, 显示对话框  
  179.         builder.show();  
  180.     }  
  181.   
  182.     //适配器列表  
  183.     public void showAdapter(View v)  
  184.     {  
  185.         //1, 获得普通对话框的构建者  
  186.         AlertDialog.Builder builder = new AlertDialog.Builder(this);  
  187.           
  188.         builder.setIcon(R.drawable.ic_launcher);  
  189.         builder.setTitle("选择设置");  
  190.           
  191.         //2, 设置适配器  
  192.           
  193.         String[] data = getResources().getStringArray(R.array.settings);  
  194.           
  195.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,  
  196.                                                         android.R.layout.simple_list_item_1,  
  197.                                                         data);  
  198.           
  199.         builder.setAdapter(adapter, new OnClickListener() {  
  200.               
  201.             @Override  
  202.             public void onClick(DialogInterface dialog, int which) {  
  203.                   
  204.                 Intent intent = new Intent();  
  205.                 switch (which) {  
  206.                 case 0:  
  207.                       
  208.                     intent.setAction("android.settings.WIFI_SETTINGS");  
  209.                       
  210.                     break;  
  211.   
  212.                 case 1:  
  213.                     intent.setAction("android.settings.SOUND_SETTINGS");  
  214.                     break;  
  215.                       
  216.                 case 2:  
  217.                     intent.setAction("android.settings.SETTINGS");  
  218.                       
  219.                     break;  
  220.                 } 
  221.                  
  222.                 startActivity(intent);  
  223.             }  
  224.         });  
  225.           
  226.         //3, 显示对话框  
  227.         //builder.show();  
  228.         builder.create().show();  
  229.     }