UIコンポーネント/ProgressDialogの使い方

Last-modified: 2009-07-17 (金) 21:25:21

android.app.ProgressDialog

プログレスインディケータを表示するダイアログです。
プログレスインディケータには、処理の進捗度合いを示すバー型と
処理時間が不明なときに用いられる円形型があります。
プログレスバーには中間のProgressを示すセカンダリプログレスバーを
表示することができます(例:ストリーミング再生のバッファレベル)。

 

プログレスダイアログを表示する手順は以下の通りです。

  • プログレスダイアログを作成
  • 表示内容や挙動の設定(詳細はProgressDialogを参照)
  • プログレスダイアログのshow()メソッドで、ダイアログを表示
 

サンプル

  • バー型のプログレスダイアログ
     
    サンプルのソースコード
    fileProgressDialogSample.java
     
    Progress_DialogSample.PNG
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        // ProgressDialogを作成
        ProgressDialog progressDialog = new ProgressDialog(this);
        // タイトルを設定
        progressDialog.setTitle("タイトル");
        // メッセージを設定
        progressDialog.setMessage("メッセージ");
        // ProgressDailogの表示形式を設定
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        // 最大値の設定(最大で10000まで)
        progressDialog.setMax(100);
        // 現在のプログレス値を設定
        progressDialog.incrementProgressBy(30);
        // secondaryのプログレス値を設定
        progressDialog.incrementSecondaryProgressBy(70);
        // 結果を表示できないようにするかどうかの判断
        progressDialog.setIndeterminate(false);
        // back keyを有効に設定
        progressDialog.setCancelable(true);
        // ProgressDialogの表示
        progressDialog.show();
    }
 
  • setIndeterminate()メソッドにtrueを設定すると、
    現在値表示のないプログレスバーになります。
     
    ProgressDialogIndeterminate.PNG
     
  • setProgressStyle()メソッドにProgressDialog.STYLE_SPINNERを設定することで、
    円形型のプログレスインディケータを表示させることができます。
     
    ProgressDialogSampleSpiner.PNG
     
  • また、引数を持つshow()メソッドを用いることで、
    以下のように表示内容や挙動の設定をすることができます。
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
        // ダイアログを実行するcontext
        Context context = this;
        // 表示するタイトル
        String title = "タイトル";
        // 表示するメッセージ
        String message = "メッセージ";
        // indeterminateモードフラグ
        boolean indeterminate = false;
        // キャンセル(back key使用)可否フラグ
        boolean cancelable = true;
        // キャンセルリスナ
        DialogInterface.OnCancelListener cancelListener = new DialogInterface.OnCancelListener() {
            @Override
            public void onCancel(DialogInterface dialog) {
                // back keyが押されたときの処理
            }
        };
        // ProgressDialogを表示
        ProgressDialog.show(context, title, message, indeterminate, cancelable, cancelListener);
    }