【Android】プログレスダイアログの表示1
プログレスダイアログの表示方法です。
ボタンを押すと、下記のようなダイアログを表示します。
●ソースコード
「R.layout.main」にボタンを配置し、
「android:onClick="BtnClick"」を設定し使用するソースです。
private ProgressDialog progressDialog1; private ProgressThread1 progressThread1; static final int PROGRESS_DIALOG1 = 0; public class TestDialog extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //ボタンクリックイベント(XMLにandroid:onClickを記述) public void BtnClick(View v) { if(v.getId() == R.id.button0) { showDialog(PROGRESS_DIALOG1); } } @Override protected Dialog onCreateDialog(int id) { // ダイアログが複数ある場合にidを使用する if (id == 0) { //プログレスダイアログ表示 progressDialog1 = new ProgressDialog(this); progressDialog1.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog1.setMessage("処理中です..."); progressDialog1.setCancelable(true); progressThread1 = new ProgressThread1(handler1); progressThread1.start(); return progressDialog1; } } @Override protected void onPrepareDialog(int id, Dialog dialog) { super.onPrepareDialog(id, dialog); if (id == 0) { //ダイアログの内容に変更がある場合に記述 } } private final Handler handler1 = new Handler() { @Override public void handleMessage(Message msg) { int result = msg.getData().getInt("result"); progressDialog1.setProgress(result); if (result == 0){ TextView textview1 = (TextView)findViewById(R.id.textview1); textview1.setText("成功しました1!"); removeDialog(PROGRESS_DIALOG1); } } }; private class ProgressThread1 extends Thread { Handler mHandler; ProgressThread1(Handler h) { mHandler = h; } public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } Message msg = mHandler.obtainMessage(); Bundle b = new Bundle(); b.putInt("result", 0); msg.setData(b); mHandler.sendMessage(msg); } } }