当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

2.6.0 其他几种常用对话框基本使用

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:25:49

本节引言:上节我们对Dialog的父类:AlertDialog进行了学习,而本节我们来学习下几个常用的Dialog的基本使用,他们分别是:ProgressDialog(进度条对话框),DatePickerDialog(日期选择对话框)和TimePickerDialog(时间选择对话框)~,话不多说,开始本节内容~1.ProgressDialog(进度条对话框)的基本使用我们创建进度条对话框的方式有两种:1.直接调用ProgressDialog提供的静态方法show()显示2.创建ProgressDialog,再设置对话框的参数,最后show()出来代码示例:运行效果图:关键实现代码:MainActivity.java:public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btn_one; private Button btn_two; private Button btn_three; private ProgressDialog pd1 = null; private ProgressDialog pd2 = null; private final static int MAXVALUE = 100; private int progressStart = 0; private int add = 0; private Context mContext = null; //定义一个用于更新进度的Handler,因为只能由主线程更新界面,所以要用Handler传递信息 final Handler hand = new Handler() { @Override public void handleMessage(Message msg) { //这里的话如果接受到信息码是123 if(msg.what == 123) { //设置进度条的当前值 pd2.setProgress(progressStart); } //如果当前大于或等于进度条的最大值,调用dismiss()方法关闭对话框 if(progressStart >= MAXVALUE) { pd2.dismiss(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mContext = MainActivity.this; bindViews(); } private void bindViews() { btn_one = (Button) findViewById(R.id.btn_one); btn_two = (Button) findViewById(R.id.btn_two); btn_three = (Button) findViewById(R.id.btn_three); btn_one.setOnClickListener(this); btn_two.setOnClickListener(this); btn_three.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_one: //这里的话参数依次为,上下文,标题,内容,是否显示进度,是否可以用取消按钮关闭 ProgressDialog.show(MainActivity.this, "资源加载中", "资源加载中,请稍后...",false,true); break; case R.id.btn_two: pd1 = new ProgressDialog(mContext); //依次设置标题,内容,是否用取消按钮关闭,是否显示进度 pd1.setTitle("软件更新中"); pd1.setMessage("软件正在更新中,请稍后..."); pd1.setCancelable(true); //这里是设置进度条的风格,HORIZONTAL是水平进度条,SPINNER是圆形进度条 pd1.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pd1.setIndeterminate(true); //调用show()方法将ProgressDialog显示出来 pd1.show(); break; case R.id.btn_three: //初始化属性 progressStart = 0; add = 0; //依次设置一些属性 pd2 = new ProgressDialog(MainActivity.this); pd2.setMax(MAXVALUE); pd2.setTitle("文件读取中"); pd2.setMessage("文件加载中,请稍后..."); //这里设置为不可以通过按取消按钮关闭进度条 pd2.setCancelable(false); pd2.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //这里设置的是是否显示进度,设为false才是显示的哦! pd2.setIndeterminate(false); pd2.show(); //这里的话新建一个线程,重写run()方法, new Thread() { public void run() { while(progressStart < MAXVALUE) { //这里的算法是决定进度条变化的,可以按需要写 progressStart = 2 * usetime() ; //把信息码发送给handle让更新界面 hand.sendEmptyMessage(123); } } }.start(); break; } } //这里设置一个耗时的方法: private int usetime() { add++; try{ Thread.sleep(100); }catch (InterruptedException e) { e.printStackTrace(); } return add; }}代码比较简单,而关于Progress的东西我们已经在前面学习过了,这里就不啰嗦了~2.DatePickerDialog(日期选择对话框)与TimePickerDialog(时间选择对话框)先要说明一点:Date/TimePickerDialog只是供用户来选择日期时间,对于android系统的系统时间,日期没有任何影响,google暂时没有公布系统日期时间设置的API,如果要在app中设置的话,要重新编译android的系统源码,非常麻烦!他们两个的构造方法非常相似:DatePickerDialog(上下文;DatePickerDialog.OnDateSetListener()监听器;年;月;日)TimePickerDialog(上下文;TimePickerDialog.OnTimeSetListener()监听器;小时,分钟,是否采用24小时制)代码示例:运行效果图:关键实现代码:MainActivity.java:public class MainActivity extends AppCompatActivity implements View.O

[1] [2]  下一页


2.6.0 其他几种常用对话框基本使用