当前位置: 首页 > news >正文

网站改版推荐免费制作网站net域名

网站改版推荐,免费制作网站net域名,小程序开发成本,重庆行业网站建设android 8种对话框#xff08;Dialog#xff09;使用方法汇总 作者#xff1a;gzdaijie本文为作者原创#xff0c;转载请注明出处#xff1a;https://www.cnblogs.com/gzdaijie/p/5222191.html 目录 1.写在前面2.代码示例2.1 普通Dialog#xff08;图1与图2#xff09;2…android 8种对话框Dialog使用方法汇总 作者gzdaijie本文为作者原创转载请注明出处https://www.cnblogs.com/gzdaijie/p/5222191.html 目录 1.写在前面2.代码示例2.1 普通Dialog图1与图22.2 列表Dialog图32.3 单选Dialog图42.4 多选Dialog图52.5 等待Dialog图62.6 进度条Dialog图72.7 编辑Dialog图82.8 自定义Dialog图93.复写回调函数 博客逐步迁移至 呆兔兔的小站 1.写在前面 Android提供了丰富的Dialog函数本文介绍最常用的8种对话框的使用方法包括普通包含提示消息和按钮、列表、单选、多选、等待、进度条、编辑、自定义等多种形式将在第2部分介绍。有时我们希望在对话框创建或关闭时完成一些特定的功能这需要复写Dialog的create()、show()、dismiss()等方法将在第3部分介绍。 2.代码示例 2.1 普通Dialog图1与图2 2个按钮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 public class MainActivity extends Activity {     Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         Button buttonNormal (Button) findViewById(R.id.button_normal);         buttonNormal.setOnClickListener(new View.OnClickListener() {             Override             public void onClick(View v) {                 showNormalDialog();             }         });     }           private void showNormalDialog(){         /* setIcon 设置对话框图标          * setTitle 设置对话框标题          * setMessage 设置对话框消息提示          * setXXX方法返回Dialog对象因此可以链式设置属性          */         final AlertDialog.Builder normalDialog             new AlertDialog.Builder(MainActivity.this);         normalDialog.setIcon(R.drawable.icon_dialog);         normalDialog.setTitle(我是一个普通Dialog)         normalDialog.setMessage(你要点击哪一个按钮呢?);         normalDialog.setPositiveButton(确定,             new DialogInterface.OnClickListener() {             Override             public void onClick(DialogInterface dialog, int which) {                 //...To-do             }         });         normalDialog.setNegativeButton(关闭,             new DialogInterface.OnClickListener() {             Override             public void onClick(DialogInterface dialog, int which) {                 //...To-do             }         });         // 显示         normalDialog.show();     } } 3个按钮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 /* setNeutralButton 设置中间的按钮  * 若只需一个按钮仅设置 setPositiveButton 即可  */ private void showMultiBtnDialog(){     AlertDialog.Builder normalDialog         new AlertDialog.Builder(MainActivity.this);     normalDialog.setIcon(R.drawable.icon_dialog);     normalDialog.setTitle(我是一个普通Dialog).setMessage(你要点击哪一个按钮呢?);     normalDialog.setPositiveButton(按钮1,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // ...To-do         }     });     normalDialog.setNeutralButton(按钮2,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // ...To-do         }     });     normalDialog.setNegativeButton(按钮3, new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // ...To-do         }     });     // 创建实例并显示     normalDialog.show(); } 2.2 列表Dialog图3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private void showListDialog() {     final String[] items { 我是1,我是2,我是3,我是4 };     AlertDialog.Builder listDialog         new AlertDialog.Builder(MainActivity.this);     listDialog.setTitle(我是一个列表Dialog);     listDialog.setItems(items, new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // which 下标从0开始             // ...To-do             Toast.makeText(MainActivity.this,                 你点击了 items[which],                 Toast.LENGTH_SHORT).show();         }     });     listDialog.show(); } 2.3 单选Dialog图4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 int yourChoice; private void showSingleChoiceDialog(){     final String[] items { 我是1,我是2,我是3,我是4 };     yourChoice -1;     AlertDialog.Builder singleChoiceDialog         new AlertDialog.Builder(MainActivity.this);     singleChoiceDialog.setTitle(我是一个单选Dialog);     // 第二个参数是默认选项此处设置为0     singleChoiceDialog.setSingleChoiceItems(items, 0,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             yourChoice which;         }     });     singleChoiceDialog.setPositiveButton(确定,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             if (yourChoice ! -1) {                 Toast.makeText(MainActivity.this,                 你选择了 items[yourChoice],                 Toast.LENGTH_SHORT).show();             }         }     });     singleChoiceDialog.show(); } 2.4 多选Dialog图5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ArrayListInteger yourChoices new ArrayList(); private void showMultiChoiceDialog() {     final String[] items { 我是1,我是2,我是3,我是4 };     // 设置默认选中的选项全为false默认均未选中     final boolean initChoiceSets[]{false,false,false,false};     yourChoices.clear();     AlertDialog.Builder multiChoiceDialog         new AlertDialog.Builder(MainActivity.this);     multiChoiceDialog.setTitle(我是一个多选Dialog);     multiChoiceDialog.setMultiChoiceItems(items, initChoiceSets,         new DialogInterface.OnMultiChoiceClickListener() {         Override         public void onClick(DialogInterface dialog, int which,             boolean isChecked) {             if (isChecked) {                 yourChoices.add(which);             } else {                 yourChoices.remove(which);             }         }     });     multiChoiceDialog.setPositiveButton(确定,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             int size yourChoices.size();             String str ;             for (int i 0; i size; i) {                 str items[yourChoices.get(i)] ;             }             Toast.makeText(MainActivity.this,                 你选中了 str,                 Toast.LENGTH_SHORT).show();         }     });     multiChoiceDialog.show(); } 2.5 等待Dialog图6 1 2 3 4 5 6 7 8 9 10 11 12 13 private void showWaitingDialog() {     /* 等待Dialog具有屏蔽其他控件的交互能力      * setCancelable 为使屏幕不可点击设置为不可取消(false)      * 下载等事件完成后主动调用函数关闭该Dialog      */     ProgressDialog waitingDialog         new ProgressDialog(MainActivity.this);     waitingDialog.setTitle(我是一个等待Dialog);     waitingDialog.setMessage(等待中...);     waitingDialog.setIndeterminate(true);     waitingDialog.setCancelable(false);     waitingDialog.show(); } 2.6 进度条Dialog图7 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 private void showProgressDialog() {     /* setProgress 设置初始进度      * setProgressStyle 设置样式水平进度条      * setMax 设置进度最大值      */     final int MAX_PROGRESS 100;     final ProgressDialog progressDialog         new ProgressDialog(MainActivity.this);     progressDialog.setProgress(0);     progressDialog.setTitle(我是一个进度条Dialog);     progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);     progressDialog.setMax(MAX_PROGRESS);     progressDialog.show();     /* 模拟进度增加的过程      * 新开一个线程每个100ms进度增加1      */     new Thread(new Runnable() {         Override         public void run() {             int progress 0;             while (progress MAX_PROGRESS){                 try {                     Thread.sleep(100);                     progress;                     progressDialog.setProgress(progress);                 } catch (InterruptedException e){                     e.printStackTrace();                 }             }             // 进度达到最大值后窗口消失             progressDialog.cancel();         }     }).start(); } 2.7 编辑Dialog图8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 private void showInputDialog() {     /*setView 装入一个EditView      */     final EditText editText new EditText(MainActivity.this);     AlertDialog.Builder inputDialog         new AlertDialog.Builder(MainActivity.this);     inputDialog.setTitle(我是一个输入Dialog).setView(editText);     inputDialog.setPositiveButton(确定,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             Toast.makeText(MainActivity.this,             editText.getText().toString(),             Toast.LENGTH_SHORT).show();         }     }).show(); } 2.8 自定义Dialog图9 1 2 3 4 5 6 7 8 9 10 11 12 !-- res/layout/dialog_customize.xml-- !-- 自定义View -- LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android     android:orientationvertical     android:layout_widthmatch_parent     android:layout_heightmatch_parent     EditText         android:idid/edit_text         android:layout_widthmatch_parent         android:layout_heightwrap_content         / /LinearLayout 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 private void showCustomizeDialog() {     /* setView 装入自定义View R.layout.dialog_customize      * 由于dialog_customize.xml只放置了一个EditView因此和图8一样      * dialog_customize.xml可自定义更复杂的View      */     AlertDialog.Builder customizeDialog         new AlertDialog.Builder(MainActivity.this);     final View dialogView LayoutInflater.from(MainActivity.this)         .inflate(R.layout.dialog_customize,null);     customizeDialog.setTitle(我是一个自定义Dialog);     customizeDialog.setView(dialogView);     customizeDialog.setPositiveButton(确定,         new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // 获取EditView中的输入内容             EditText edit_text                 (EditText) dialogView.findViewById(R.id.edit_text);             Toast.makeText(MainActivity.this,                 edit_text.getText().toString(),                 Toast.LENGTH_SHORT).show();         }     });     customizeDialog.show(); } 3.复写回调函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 /* 复写Builder的create和show函数可以在Dialog显示前实现必要设置  * 例如初始化列表、默认选项等  * create 第一次创建时调用  * show 每次显示时调用  */ private void showListDialog() {     final String[] items { 我是1,我是2,我是3,我是4 };     AlertDialog.Builder listDialog         new AlertDialog.Builder(MainActivity.this){                   Override         public AlertDialog create() {             items[0] 我是No.1;             return super.create();         }         Override         public AlertDialog show() {             items[1] 我是No.2;             return super.show();         }     };     listDialog.setTitle(我是一个列表Dialog);     listDialog.setItems(items, new DialogInterface.OnClickListener() {         Override         public void onClick(DialogInterface dialog, int which) {             // ...To-do         }     });     /* setOnDismissListener Dialog销毁时调用      * setOnCancelListener Dialog关闭时调用      */     listDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {         public void onDismiss(DialogInterface dialog) {             Toast.makeText(getApplicationContext(),                 Dialog被销毁了,                 Toast.LENGTH_SHORT).show();         }     });     listDialog.show(); } 转载于:https://www.cnblogs.com/z2qfei/p/7833226.html
http://wiki.neutronadmin.com/news/336300/

相关文章:

  • 哪个网站有老外教做蛋糕营销项目策划公司
  • 产品网站建设方案十渡网站建设
  • 银川网站建设哪家好绍兴模板建站代理
  • 做中文的云图网站网页版传奇排行榜
  • 网站如何做百度实名认证wordpress网站加速
  • 福建建设执业中心网站北极寒流wordpress
  • 美工网站设计是什么wordpress 单栏模板
  • 专门做名片的网站柯桥区建设集团网站
  • 企业网站注销流程新建网站的步骤
  • 松江叶榭网站建设重庆公司买深圳社保
  • 爬取漫画数据做网站seon是什么意思
  • 郑州网站建设e橙网熊掌号集团网站风格
  • 做网站送的小程序有什么用如何在网站找做贸易的客户
  • 哪种网站语言最好北京微信网站开发费用
  • 广州网站建设找哪家企业网络推广计划书
  • 对运营网站有什么见解网站建设前的ER图
  • 建设网站需要备案么网站建设大德通众包
  • 公司网站建设中恒建设集团有限公司北京商场租金
  • 太原市建设北路小学网站360免费建站391199
  • 雅思培训恩施seo
  • 购物网站开发技术网页设计与制作教程书电子版
  • 快速的网站开发网站托管费用多少
  • 淄博网站排名优化报价口腔医院网站优化服务商
  • 网站网页访问权限自己怎么设计公众号
  • 邢台宇鹏网站建设网店推广策划
  • 为啥浏览做的网站有移动条wordpress 标签前缀
  • 浏览网站 需要我安装wordpress贵阳网站seo外包
  • 生活服务网站建设网站多语言切换
  • 航佳网站建设做项目的招聘网站
  • 做关键词排名卖网站官方正版浏览器