Android ProgressDialog 用法记录

ProgressBar有两个进度

一个是android:progress

一个是android:secondaryProgress:主要是为缓存需要所涉及的,比如在看网络视频时候都会有一个缓存的进度条以及还要一个播放的进度,在这里缓存的进度就可以是android:secondaryProgress,而播放进度就是android:progress。

mPD = ProgressDialog.show(MainActivity.this,
        TitleStr,   //窗体标题
        MessageStr, //消息内容
        true,       //true则显示圆动画,设为false才显示 进度条 通过 mPD.setProgress(int); 设置进度
        false);     //是否可以取消

setProgress(int) //设置第一进度
setSecondaryProgress(int) //设置第二进度
getProgress() //获取第一进度
getSecondaryProgress() //获取第二进度
incrementProgressBy(int) //增加或减少第一进度 增减量
incrementSecondaryProgressBy(int) //增加或减少第二进度 增减量
getMax() //获取最大进度

通过 new 方式 创建 ProgressDialog

final ProgressDialog mPD = new ProgressDialog(this);
// 设置进度条的形式为圆形转动的进度条
mPD.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置是否可以通过点击Back键取消 
mPD.setCancelable(true);
// 设置在点击Dialog外是否取消Dialog进度条 
mPD.setCanceledOnTouchOutside(false);
// 设置提示的title的图标,默认是没有的,如果没有设置title的话只设置Icon是不会显示图标的 
mPD.setIcon(R.drawable.ic_launcher);
// 设置提示的title的标题
mPD.setTitle("标题");
// 设置提示的Message的内容
mPD.setMessage("这是显示的消息内容"); 

// dismiss监听 
mPD.setOnDismissListener(new DialogInterface.OnDismissListener() { 
    @Override
    public void onDismiss(DialogInterface dialog) { 
        // TODO Auto-generated method stub 
    } 
});
 
// 监听Key事件被传递给dialog 
mPD.setOnKeyListener(new DialogInterface.OnKeyListener() { 
    @Override
    public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { 
        // TODO Auto-generated method stub 
        return false; 
    } 
});

// 监听cancel事件 
mPD.setOnCancelListener(new DialogInterface.OnCancelListener() { 
    @Override
    public void onCancel(DialogInterface dialog) { 
        // TODO Auto-generated method stub 
    } 
});
 
//设置可点击的按钮,最多有三个(默认情况下) 
mPD.setButton(DialogInterface.BUTTON_POSITIVE, "确定",
    new DialogInterface.OnClickListener() { 
    @Override
    public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
    } 
}); 

mPD.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", 
    new DialogInterface.OnClickListener() { 
    @Override
    public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
    } 
});
 
mPD.setButton(DialogInterface.BUTTON_NEUTRAL, "中立", 
    new DialogInterface.OnClickListener() { 
    @Override
    public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
    } 
});

// 显示
mPD.show();

new Thread(new Runnable() { 
    @Override
    public void run() { 
        // TODO Auto-generated method stub 
        try { 
            Thread.sleep(5000); 
            // cancel和dismiss方法本质都是一样的,都是从屏幕中删除Dialog,唯一的区别是 
            // 调用 cancel 方法会回调 DialogInterface.OnCancelListener 如果注册的话
            // 调用 dismiss 方法不会回调
            mPD.cancel();
            // mPD.dismiss(); 
        } catch (InterruptedException e) { 
            // TODO Auto-generated catch block 
            e.printStackTrace(); 
        } 
    } 
}).start();

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值