android模式进度对话框(ProgressDialog)的调用方法

android模式进度对话框(ProgressDialog)的调用方法

 

日期:2018/9/29

作者:微澜

qq:9611153

 

宗旨:

         正视分享,学习把一个简单的东西分享给别人。

         写此文目的不在于介绍全面的知识,而在于学习如何去分享。

名词解释

ProgressDialog是一个android自带的模式对话框,告知用户正在进行一项任务,需要用户等待,有了结果后才能进行下去。

如登录操作,文件下载,资源初始化等等情况,告知用户程序当前在做什么。基本样式如下:

步骤

1、变量声明

     private ProgressDialog _progressDialog;

 

2、对话框显示

_progressDialog = ProgressDialog.show(this, "Loading...", "正在处理...");

 

3、对话框取消

_progressDialog.cancel();

 

注意点

         1、ProgressDialog为模式对话框,必须取消才能进行其他操作

2、需要确保未完成任务的时候也能关闭对话框,如点击后退键取消,点击内部按钮取消等。

3、在线程中完成任务,完成后,需要在ui线程中关闭对话框或执行其他ui操作。

 

简单例子

 

public class MainActivity extends AppCompatActivity {

   
@BindView(R.id.button2)
    Button
button2;
   
@BindView(R.id.button1)
    TextView
button1;
    private
ProgressDialog _progressDialog;
   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
setContentView(R.layout.activity_main);
        
ButterKnife.bind(this);
   
}

   
@OnClick({R.id.button1, R.id.button2})
   
public void onViewClicked(View view) {
       
switch (view.getId()) {
           
case R.id.button1:
                Toast.makeText(MainActivity.
this, "---开始 ", Toast.LENGTH_LONG).show();
                
_progressDialog = ProgressDialog.show(this, "Loading...", "正在处理...");
               
//方法1
               
new Thread(new Runnable() {//启动线程处理其他事情
                    @Override
                   
public void run() {
                       
try {
                            Thread.sleep(
5000);
                       
} catch (InterruptedException e) {
                            e.printStackTrace()
;
                       
}
                        runOnUiThread(
new Runnable() {//处理界面线程
                            @Override
                           
public void run() {
                               
if (_progressDialog != null) {
                                   
_progressDialog.cancel();
                               
}
                                Toast.makeText(MainActivity.
this, "---取消 ", Toast.LENGTH_LONG).show();
                           
}
                        })
;
                   
}
                }).start()
;

                break;
            case
R.id.button2:
//                if (_progressDialog != null) {//这里是无效的,因为它是模式对话框
//                    _progressDialog.cancel();
//                }
               
break;
       
}
    }
   
//使用后退键退出
    @Override
   
public boolean onKeyDown(int keyCode, KeyEvent event) {
        
// 截获后退键
        if (keyCode == KeyEvent.KEYCODE_BACK) {
           
if (_progressDialog != null) {
               
_progressDialog.cancel();
           
}
        }
       
return super.onKeyDown(keyCode, event);
   
}
}

总结

         ProgressDialog是一种android自带的等待对话框,也是一种常用工具,能对程序起到启承转合的作用。

  

         信念:

                   风起于青蘋之末,浪成于微澜之间。

 

         我的小程序:

                   微澜阅读,现阶段主要内容 1)、包含了中国古代4大名著,唐诗300,几篇著名古代散文 2)、几个文学相关新闻组地址可以查看 有时间会有更多内容添加进去。

                   https://download.csdn.net/download/lgs790709/10696351

 

         自我介绍:

                   编程十余载,使用过dotnet,vc,java,从事的行业包括电子政务,证券软件,视频监控,医疗健康等,一个老程序员,希望与大家相互交流。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微澜-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值