博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
progressDialog 为什么设置了setProgress()方法无反应?
阅读量:5292 次
发布时间:2019-06-14

本文共 4136 字,大约阅读时间需要 13 分钟。

============问题描述============

package com.example.dialoglogdemo;import android.app.AlertDialog;import android.app.ProgressDialog;import android.content.DialogInterface;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v7.app.ActionBarActivity;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends ActionBarActivity implements OnClickListener {	private AlertDialog.Builder builder;	ProgressDialog pd;	private Button btn_start;	private Button btn_stop;	private Handler mHandler = new Handler() {		@Override		public void handleMessage(Message msg) {			// TODO Auto-generated method stub			switch (msg.what) {			case 1:				if (pd != null) {					int value = msg.arg1;					Log.i("updateValue", "取出的值:"+msg.arg1+"");					pd.setProgress(msg.arg1);//无反应,不更新进度				}				break;			case 2:				if (builder != null) {				}				break;			case 3:				if (pd != null) {					pd.dismiss();				}			default:				break;			}		}	};	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		btn_start = (Button) findViewById(R.id.button1);		btn_stop = (Button) findViewById(R.id.button2);		btn_start.setOnClickListener(this);		btn_stop.setOnClickListener(this);	}	@Override	public void onClick(View v) {		// TODO Auto-generated method stub		switch (v.getId()) {		case R.id.button1:			// 开始显示			pd = new ProgressDialog(this);			pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);			pd.setTitle("下载");			pd.setIcon(R.drawable.ic_launcher);			pd.setMessage("正在下载");			pd.setIndeterminate(true);			pd.setCancelable(true);			pd.setButton(DialogInterface.BUTTON_POSITIVE, "确定",					new DialogInterface.OnClickListener() {						@Override						public void onClick(DialogInterface dialog, int which) {							// TODO Auto-generated method stub							// pd.dismiss();						}					});			pd.setButton(DialogInterface.BUTTON_NEGATIVE, "取消",					new DialogInterface.OnClickListener() {						@Override						public void onClick(DialogInterface dialog, int which) {							// TODO Auto-generated method stub							// pd.dismiss();						}					});			pd.show();			// pd = ProgressDialog.show(MainActivity.this, "Loading...",			// "Please wait...", true, false);			new Thread(new Runnable() {				@Override				public void run() {					Message msg = new Message();					// TODO Auto-generated method stub					try {						for (int i = 1; i <= 100; i++) {							Thread.sleep(100);							msg=Message.obtain();							msg.what=1;							msg.arg1 = i;							Log.i("updateValue", "放入的值:"+msg.arg1+"");							mHandler.sendMessage(msg);						}						mHandler.sendEmptyMessage(3);					} catch (InterruptedException e) {						// TODO Auto-generated catch block						e.printStackTrace();					}				}			}).start();			break;		case R.id.button2:			// 停止显示			builder = new AlertDialog.Builder(MainActivity.this);			builder.setTitle("下载")					.setIcon(R.drawable.ic_launcher)					.setCancelable(true)					.setMessage("downloading...")					.setPositiveButton("确定",							new DialogInterface.OnClickListener() {								@Override								public void onClick(DialogInterface dialog,										int which) {									// TODO Auto-generated method stub								}							})					.setNegativeButton("取消下载",							new DialogInterface.OnClickListener() {								@Override								public void onClick(DialogInterface dialog,										int which) {									// TODO Auto-generated method stub									dialog.dismiss();								}							});			AlertDialog dialog = builder.create();			dialog.show();			new Thread(new Runnable() {				@Override				public void run() {					// TODO Auto-generated method stub					try {						Thread.sleep(8000);						mHandler.sendMessage(mHandler.obtainMessage(2));					} catch (InterruptedException e) {						// TODO Auto-generated catch block						e.printStackTrace();					}				}			}).start();			break;		default:			break;		}	}}

============解决方案1============

初始化时加上pd.setMax(最大的值); 

============解决方案2============

没看到你 的 setMax

转载于:https://www.cnblogs.com/yiguobei99/p/4083150.html

你可能感兴趣的文章
TortoiseSVN is locked in another working copy
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
Html学习_简易个人网页制作
查看>>
angular中ng-bind指令小案例
查看>>
jqery总结
查看>>
Lodop获取客户端主网卡ip地址是0.0.0.0
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
微信小程序开发初体验
查看>>
dos批处理(bat)运行exe
查看>>
关键字
查看>>
Pycharm安装Markdown插件
查看>>
上传图片并预览
查看>>
哈夫曼编码_静态库
查看>>
【转】redo与undo
查看>>
C#更新程序设计
查看>>
常用Request对象获取请求信息
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>