您的位置:首页 > 移动开发 > Android开发

一起学android之创建简单的ProgressDialog(30)

2015-04-13 14:04 295 查看
效果图:



参看以下代码:

public class ProgressActivity extends Activity implements OnClickListener {
// 最大进度
private static final int MAX_PROGRESS = 100;
// 进度条
private ProgressDialog progressDialog;
// 当前进度值
private int progress = 0;

// 控件
private Button btn_progress_1;
private Button btn_progress_2;

private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
if (progress > MAX_PROGRESS) {// 达到最大值
progress = 0;
progressDialog.dismiss();
} else {
progress++;
// 进度递增1
progressDialog.incrementProgressBy(1);
handler.sendEmptyMessageDelayed(1,
50 + new Random().nextInt(500));
}
break;

default:
break;
}

}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress);
initViews();
initListeners();
}

private void initViews() {
btn_progress_1 = (Button) findViewById(R.id.btn_progress_1);
btn_progress_2 = (Button) findViewById(R.id.btn_progress_2);
}

private void initListeners() {
btn_progress_1.setOnClickListener(this);
btn_progress_2.setOnClickListener(this);
}

/**
* 显示对话框
*/
@SuppressWarnings("deprecation")
private void showProgressDialog(int style) {
progressDialog = new ProgressDialog(this);
progressDialog.setIcon(R.drawable.ic_launcher);
progressDialog.setTitle("正在处理数据...");
progressDialog.setMessage("请稍后...");
// 设置进度对话框的风格
progressDialog.setProgressStyle(style);
// 设置进度对话框的进度最大值
progressDialog.setMax(MAX_PROGRESS);
// 设置进度对话框的“暂停”按钮
progressDialog.setButton(DialogInterface.BUTTON_POSITIVE, "暂停",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
handler.removeMessages(1);

}
});
// 设置进度对话框的“取消”按钮
progressDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "取消",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
handler.removeMessages(1);
// 重置
progress = 0;
progressDialog.setProgress(progress);

}
});
progressDialog.show();
progress = (progress > 0) ? progress : 0;
progressDialog.setProgress(progress);
handler.sendEmptyMessage(1);

}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_progress_1:// 进度对话框
showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);
break;
case R.id.btn_progress_2:// 旋转对话框
showProgressDialog(ProgressDialog.STYLE_SPINNER);
break;
default:
break;
}

}

}


转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/45024997 情绪控_
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: