ProgressDialog
処理に時間がかかる場合、処理中であることをユーザに知らせます。
● Activity
レイアウトにボタンを配置して、ボタン押下時にProgressDialog表示します。
setProgressStyleでSTYLE_SPINNERを設定していますが、
円のくるくる回るよく見かける画像が表示されます。
*処理がどのくらいかかるのか分からない場合に使用します。
設定が終わったら、showでProgressDialogを表示します。
Threadを作り、sleepを使うことで疑似的に処理時間がかかるようにします。
処理が終わったら、dismissでProgressDialogを消します。
import android.os.Bundle;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ProgressDialogActivity extends Activity {
private ProgressDialog progressDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress_dialog);
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
progressDialog = new ProgressDialog(ProgressDialogActivity.this);
progressDialog.setTitle("ProgressDialog");
progressDialog.setMessage("処理中・・・");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
Thread thread = new Thread(new Runnable(){
public void run() {
try {
Thread.sleep(10000);
progressDialog.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
thread.start();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_progress_dialog, menu);
return true;
}
}
|