Android之进度框的两种显示方法


显示进度对话框

在程序中调用showDialog的时候,系统会回调函数onCreateDialog,此时可以根据传递过来的id进行相应的显示

如果需要显示对话框,则需要覆写onCreateDialog函数,在显示选项中new一个progressDialog对象,然后返回就可以了

  1. @Override  
  2. protected Dialog onCreateDialog(int id) {  
  3.     switch (id) {  
  4.         case DIALOG1_KEY: {         //有标题栏的进度对话框   
  5.             ProgressDialog dialog = new ProgressDialog(this);  
  6.             dialog.setTitle("Indeterminate");  
  7.             dialog.setMessage("Please wait while loading...");  
  8.             dialog.setIndeterminate(true);  
  9.             dialog.setCancelable(true);  
  10.             return dialog;  
  11.         }  
  12.         case DIALOG2_KEY: {          //没有标题栏的进度对话框   
  13.             ProgressDialog dialog = new ProgressDialog(this);  
  14.             dialog.setMessage("Please wait while loading...");  
  15.             dialog.setIndeterminate(true);  
  16.             dialog.setCancelable(true);  
  17.             return dialog;  
  18.         }  
  19.     }  
  20.     return null;  
  21. }  
而下面的程序则演示了  如何在窗口的标题栏显示进度对话框
  1. private boolean mToggleIndeterminate = false;  
  2.   
  3.     @Override  
  4.     protected void onCreate(Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.   
  7.         // Request progress bar   
  8.         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
  9.         setContentView(R.layout.progressbar_4);  
  10.         setProgressBarIndeterminateVisibility(mToggleIndeterminate);  
  11.           
  12.         Button button = (Button) findViewById(R.id.toggle);  
  13.         button.setOnClickListener(new Button.OnClickListener() {  
  14.             public void onClick(View v) {  
  15.                 mToggleIndeterminate = !mToggleIndeterminate;  
  16.                 setProgressBarIndeterminateVisibility(mToggleIndeterminate);  
  17.             }  
  18.         });  
  19.     }  

相关内容