ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

对话框详解1

2021-05-19 23:55:48  阅读:191  来源: 互联网

标签:对话框 void 详解 进度 progress progressDialog public


本文演示了两种特殊对话框--ProcessDialog的使用方法:




主程序如下:

public class Main extends Activity implements OnClickListener {
	private static final int MAX_PROGRESS = 100;
	private ProgressDialog progressDialog;
	private Handler progressHandler;
	private int progress;

	// 显示进度对话框,style表示进度对话框的风格
	private void showProgressDialog(int style) {
		progressDialog = new ProgressDialog(this);
		progressDialog.setIcon(R.drawable.wait);
		progressDialog.setTitle("正在处理数据...");
		progressDialog.setMessage("请稍后...");
		// 设置进度对话框的风格
		progressDialog.setProgressStyle(style);
		// 设置进度对话框的进度最大值
		progressDialog.setMax(MAX_PROGRESS);
		// 设置进度对话框的【暂停】按钮
		progressDialog.setButton("暂停", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int whichButton) {
				// 通过删除消息代码的方式停止定时器
				progressHandler.removeMessages(1);
			}
		});
		// 设置进度对话框的【取消】按钮
		progressDialog.setButton2("取消", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int whichButton) {
				// 通过删除消息代码的方式停止定时器的执行
				progressHandler.removeMessages(1);
				// 恢复进度初始值
				progress = 0;
				progressDialog.setProgress(0);
			}
		});
		progressDialog.show();
		progressHandler = new Handler() {
			@Override
			public void handleMessage(Message msg) {
				super.handleMessage(msg);
				// if (progressDialog.getProgress() >= MAX_PROGRESS)
				if (progress >= MAX_PROGRESS) {
					// 进度达到最大值,关闭对话框
					progress = 0;
					progressDialog.dismiss();

				} else {
					progress++;
					// 将进度递增1
					progressDialog.incrementProgressBy(1);
					// 随机设置下一次递增进度(调用handleMessage方法)的时间
					progressHandler.sendEmptyMessageDelayed(1,
							50 + new Random().nextInt(500));

				}
			}
		};

		// 设置进度初始值
		progress = (progress > 0) ? progress : 0;
		progressDialog.setProgress(progress);
		progressHandler.sendEmptyMessage(1);
	}

	public void onClick(View view) {
		switch (view.getId()) {
		case R.id.button1:
			// 显示进度条风格的进度对话框
			showProgressDialog(ProgressDialog.STYLE_HORIZONTAL);
			break;

		case R.id.button2:
			// 显示旋转指针风格的进度对话框
			showProgressDialog(ProgressDialog.STYLE_SPINNER);
			break;
		}
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Button button1 = (Button) findViewById(R.id.button1);
		button1.setOnClickListener(this);
		Button button2 = (Button) findViewById(R.id.button2);
		button2.setOnClickListener(this);

	}
}


标签:对话框,void,详解,进度,progress,progressDialog,public
来源: https://blog.51cto.com/u_9894631/2789286

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有