java.lang.Object
↳ android.app.Dialog
↳ android.app.AlertDialog
↳ android.app.ProgressDialog
を使いますというわけで、ProgressDialog をいじってみた
サンプルプログラム
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
public class ProgressDialogTest extends Activity implements Runnable {
ProgressDialog progressDialog;
Thread thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressdialogtest);
progressDialog = new ProgressDialog(this);
// ProgressDialog のタイトルを設定
progressDialog.setTitle("Title");
// ProgressDialog のメッセージを設定
progressDialog.setMessage("Message");
// ProgressDialog の確定(false)/不確定(true)を設定します
progressDialog.setIndeterminate(false);
// ProgressDialog のスタイルを水平スタイルに設定
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 円スタイルの場合
// progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// ProgressDialog の最大値を設定 (水平の時)
progressDialog.setMax(100);
// ProgressDialog の初期値を設定 (水平の時)
progressDialog.incrementProgressBy(0);
// ProgressDialog のセカンダリ値を設定 (水平の時)
progressDialog.incrementSecondaryProgressBy(50);
// ProgressDialog のキャンセルが可能かどうか
progressDialog.setCancelable(false);
// ProgressDialog のキャンセルされた時に呼び出されるコールバックを登録
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
// Thread を停止
stop();
}
});
// Start ボタン
findViewById(R.id.ProgressDialogTest_Button).setOnClickListener(
new View.OnClickListener() {
public void onClick(View view) {
// ProgressDialog を表示
progressDialog.show();
// Thread を起動
init();
start();
}
}
);
// ProgressDialog の Cancel ボタン
progressDialog.setButton(
DialogInterface.BUTTON_NEGATIVE,
"Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// ProgressDialog をキャンセル
dialog.cancel();
}
}
);
}
/** Runnable のプログラム */
public void init() {
thread = null;
}
public void start() {
if (thread == null) {
thread = new Thread(this);
thread.start();
}
}
public void run() {
int count = 0;
Thread thisThread = Thread.currentThread();
while (thisThread == thread) {
// 100ms毎に Progress Bar を進める
progressDialog.setProgress(count++);
try {
thread.sleep(100);
} catch (InterruptedException e) {
}
if (count >= progressDialog.getMax()) {
// Progress が完了
break;
}
}
// Progress Dialog を消す
progressDialog.dismiss();
}
public void stop() {
thread = null;
}
}
プログラムを実行すると...
円スタイルのとき
こんな感じ!


これのダイアログを使用しないバージョンを教えていただけないでしょうか?
返信削除