本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


除了“对话框”进度条,也可以创建一个显示“操作进度”的对话框,例如显示正在下载的状态。

1. 创建一个工程:Dialog。

2. main.xml中的代码。

[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical">
  6. <Button
  7. android:id="@+id/btn_dialog3"
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:onClick="onClick3"
  11. android:text="Clicktodisplayadetailedprogressdialog"/>
  12. </LinearLayout>
3. DialogActivity.java中的代码。 [java] view plain copy
  1. publicclassDialogActivityextendsActivity{
  2. ProgressDialogprogressDialog;
  3. /**Calledwhentheactivityisfirstcreated.*/
  4. @Override
  5. publicvoidonCreate(BundlesavedInstanceState){
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. }
  9. publicvoidonClick3(Viewv){
  10. showDialog(1);
  11. progressDialog.setProgress(0);
  12. newThread(newRunnable(){
  13. publicvoidrun(){
  14. for(inti=1;i<=15;i++){
  15. try{
  16. //---simulatedoingsomethinglengthy---
  17. Thread.sleep(1000);
  18. //---updatethedialog---
  19. progressDialog.incrementProgressBy((int)(100/15));
  20. }catch(InterruptedExceptione){
  21. e.printStackTrace();
  22. }
  23. }
  24. progressDialog.dismiss();
  25. }
  26. }).start();
  27. }
  28. @Override
  29. protectedDialogonCreateDialog(intid){
  30. switch(id){
  31. case1:
  32. progressDialog=newProgressDialog(this);
  33. progressDialog.setIcon(R.drawable.ic_launcher);
  34. progressDialog.setTitle("Downloadingfiles...");
  35. progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
  36. progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"OK",
  37. newDialogInterface.OnClickListener(){
  38. publicvoidonClick(DialogInterfacedialog,
  39. intwhichButton){
  40. Toast.makeText(getBaseContext(),"OKclicked!",
  41. Toast.LENGTH_SHORT).show();
  42. }
  43. });
  44. progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"Cancel",
  45. newDialogInterface.OnClickListener(){
  46. publicvoidonClick(DialogInterfacedialog,
  47. intwhichButton){
  48. Toast.makeText(getBaseContext(),"Cancelclicked!",
  49. Toast.LENGTH_SHORT).show();
  50. }
  51. });
  52. returnprogressDialog;
  53. }
  54. returnnull;
  55. }
  56. }
4. 按F11调试。


想要创建一个显示进度的对话框,首先要创建一个ProgressDialog类的实例,然后设置各种状态,图标、标题、样式等等:

[java] view plain copy
  1. progressDialog=newProgressDialog(this);
  2. progressDialog.setIcon(R.drawable.ic_launcher);
  3. progressDialog.setTitle("Downloadingfiles...");
  4. progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
然后设置两个按钮: [java] view plain copy
  1. progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"OK",
  2. newDialogInterface.OnClickListener(){
  3. publicvoidonClick(DialogInterfacedialog,
  4. intwhichButton){
  5. Toast.makeText(getBaseContext(),"OKclicked!",
  6. Toast.LENGTH_SHORT).show();
  7. }
  8. });
  9. progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"Cancel",
  10. newDialogInterface.OnClickListener(){
  11. publicvoidonClick(DialogInterfacedialog,
  12. intwhichButton){
  13. Toast.makeText(getBaseContext(),"Cancelclicked!",
  14. Toast.LENGTH_SHORT).show();
  15. }
  16. });
使用一个线程显示进度条的状态: [java] view plain copy
  1. progressDialog.setProgress(0);
  2. newThread(newRunnable(){
  3. publicvoidrun(){
  4. for(inti=1;i<=15;i++){
  5. try{
  6. //---simulatedoingsomethinglengthy---
  7. Thread.sleep(1000);
  8. //---updatethedialog---
  9. progressDialog.incrementProgressBy((int)(100/15));
  10. }catch(InterruptedExceptione){
  11. e.printStackTrace();
  12. }
  13. }
  14. progressDialog.dismiss();
  15. }
  16. }).start();
当进度条到达100%的时候,它就被解除了。

更多相关文章

  1. android.app.Activity 的介绍
  2. 使用大量checkbox的时候可能出现的小问题
  3. 【Android之隐藏状态栏、设置全屏、取消全屏】
  4. Android核心分析(19)----电话系统之GSMCallTacker
  5. android wifi连接打印机并获取打印机状态
  6. Android通话和数据传输过程分析
  7. 关于如何获取android状态栏高度
  8. Android开发应用异步检查更新代码
  9. Android(安卓)开发 —— Android四大组件

随机推荐

  1. android中TextAppearanceSpan的使用
  2. 沈大海移动开发课程android,j2me
  3. Android ListView 一些设置 , 去除边缘阴
  4. Android中的GridView详解
  5. Android单选框基本应用方式
  6. android WebView 开发指栏
  7. android教程资源 免费android深入浅出课
  8. Android 布局中如何使控件居中
  9. android小游戏 猜拳游戏设计
  10. Android最新开源框架大全