ProgressDialog使用总结
生活随笔
收集整理的這篇文章主要介紹了
ProgressDialog使用总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ProgressDialog的使用?
ProgressDialog 繼承自AlertDialog,AlertDialog繼承自Dialog,實現DialogInterface接口。
ProgressDialog的創建方式有兩種,一種是new Dialog ,一種是調用Dialog的靜態方法Dialog.show()。
? ? ??
// 方式一:new Dialogfinal ProgressDialog dialog = new ProgressDialog(this);dialog.show();// 方式二:使用靜態方式創建并顯示,這樣的進度條僅僅能是圓形條,設置title和Message提示內容ProgressDialog dialog2 = ProgressDialog.show(this, "提示", "正在登陸中");
// 方式三 使用靜態方式創建并顯示,這樣的進度條僅僅能是圓形條,這里最后一個參數boolean indeterminate設置是否是不明白的狀態ProgressDialog dialog3 = ProgressDialog.show(this, "提示", "正在登陸中", false);
// 方式四 使用靜態方式創建并顯示,這樣的進度條僅僅能是圓形條,這里最后一個參數boolean cancelable 設置是否進度條是能夠取消的ProgressDialog dialog4 = ProgressDialog.show(this, "提示", "正在登陸中",false, true);
方式五中須要一個cancelListener,代碼例如以下;
ProgressDialog的樣式有兩種,一種是圓形不明白狀態,一種是水平進度條狀態
第一種方式:圓形進度條
final ProgressDialog dialog = new ProgressDialog(this);dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 設置進度條的形式為圓形轉動的進度條dialog.setCancelable(true);// 設置能否夠通過點擊Back鍵取消dialog.setCanceledOnTouchOutside(false);// 設置在點擊Dialog外是否取消Dialog進度條dialog.setIcon(R.drawable.ic_launcher);//// 設置提示的title的圖標,默認是沒有的,假設沒有設置title的話僅僅設置Icon是不會顯示圖標的dialog.setTitle("提示");// dismiss監聽dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {@Overridepublic void onDismiss(DialogInterface dialog) {// TODO Auto-generated method stub}});// 監聽Key事件被傳遞給dialogdialog.setOnKeyListener(new DialogInterface.OnKeyListener() {@Overridepublic boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {// TODO Auto-generated method stubreturn false;}});// 監聽cancel事件dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {@Overridepublic void onCancel(DialogInterface dialog) {// TODO Auto-generated method stub}});//設置可點擊的button,最多有三個(默認情況下)dialog.setButton(DialogInterface.BUTTON_POSITIVE, "確定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "中立",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setMessage("這是一個圓形進度條");dialog.show();new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtry {Thread.sleep(5000);// cancel和dismiss方法本質都是一樣的,都是從屏幕中刪除Dialog,唯一的差別是// 調用cancel方法會回調DialogInterface.OnCancelListener假設注冊的話,dismiss方法不會回掉dialog.cancel();// dialog.dismiss();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();當中通過Thread.sleep(5000)模擬后臺操作。
cancel和dismiss方法本質都是一樣的,都是從屏幕中刪除Dialog,唯一的差別是:調用cancel方法會回調DialogInterface.OnCancelListener假設注冊的話,dismiss方法不會回掉。
?另外一種方式:水平進度條
// 進度條還有二級進度條的那種形式,這里就不演示了final ProgressDialog dialog = new ProgressDialog(this);dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 設置水平進度條dialog.setCancelable(true);// 設置能否夠通過點擊Back鍵取消dialog.setCanceledOnTouchOutside(false);// 設置在點擊Dialog外是否取消Dialog進度條dialog.setIcon(R.drawable.ic_launcher);// 設置提示的title的圖標,默認是沒有的dialog.setTitle("提示");dialog.setMax(100);dialog.setButton(DialogInterface.BUTTON_POSITIVE, "確定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "中立",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});dialog.setMessage("這是一個水平進度條");dialog.show();new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubint i = 0;while (i < 100) {try {Thread.sleep(200);// 更新進度條的進度,能夠在子線程中更新進度條進度dialog.incrementProgressBy(1);// dialog.incrementSecondaryProgressBy(10)//二級進度條更新方式i++;} catch (Exception e) {// TODO: handle exception}}// 在進度條走完時刪除Dialogdialog.dismiss();}}).start();很多其它的是使用自己定義的ProgressDialog,以滿足不同顯示的須要。
?
? ? ??
轉載于:https://www.cnblogs.com/bhlsheji/p/4231800.html
總結
以上是生活随笔為你收集整理的ProgressDialog使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tomcat数据源总结
- 下一篇: 虚拟机中的solaris无法通过putt