android setprogress,progressDialog 为什么设置了setProgress()方法无反应?
============问题描述============
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
原文:http://www.cnblogs.com/yiguobei99/p/4083150.html
android setprogress,progressDialog 为什么设置了setProgress()方法无反应?相关推荐
- Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声
Android来电铃声默认设置的实现方法与如何设置语音来电的默认铃声 一.Android来电铃声默认设置的实现方法 Andoird默认来电铃声的设置方法为修改build/target/product/ ...
- android alarmmanager 闹钟,Android编程使用AlarmManager设置闹钟的方法
本文实例讲述了Android编程使用AlarmManager设置闹钟的方法.分享给大家供大家参考,具体如下: package com.Aina.Android; import android.cont ...
- progressDialog 为什么设置了setProgress()方法无反应?
============问题描述============ package com.example.dialoglogdemo;import android.app.AlertDialog;import ...
- Android中图片圆形设置三种方法介绍
Android开发中经常会用到圆形图片,比如在用户头像设置,现在提供三种主要实现方式: 方案一:使用第三方图像框架 Fresco 1.添加依赖 dependencies {compile 'com.f ...
- android progressbar icon,android中ProgressDialog与ProgressBar的使用详解
一 .ProgressDialogProgressDialog与ProgressBar在UI中动态显示一个加载图标显示程序运行状态.ProgressDialog是继承自Android.app.Prog ...
- 自定义背景android,Android自定义Button并设置不同背景图片的方法
本文实例讲述了Android自定义Button并设置不同背景图片的方法.分享给大家供大家参考,具体如下: 1.自定义MyButton类 public class MyButton extends Bu ...
- android震动服务能设置时长么,Android实现手机振动设置的方法
本文实例讲述了Android实现手机振动设置的方法.分享给大家供大家参考.具体如下: main.xml布局文件: android:orientation="vertical" an ...
- android开发按钮颜色,Android编程实现简单设置按钮颜色的方法
本文实例讲述了Android编程实现简单设置按钮颜色的方法.分享给大家供大家参考,具体如下: 1.工程目录 a.在res目录-新建drawble文件夹放入自定义图片 2.main.xml androi ...
- android 代码设置dialog 全屏,Android里把Dialog设置为全屏的方法
Android里把Dialog设置为全屏的方法 有的时候我们需要把Dialog设置为全屏,于是我们想到了如下的办法: //设置成全屏 LinearLayout.LayoutParams p = new ...
最新文章
- SVN代码冲突解决方案小集合
- sigmoid函数求导与自然指数
- linux 链接ln的使用 创建和删除符号连接(软、硬链接)
- ajax响应不显示值,Ajax响应200正常,但显示未能加载响应数据
- mysql表的遍历_MySQL 全表遍历
- CentOS上使用sysstat做系统监控测试
- 38. 遵循按照值传递的原则来设计函数子类
- Activiti流程实例管理
- 【细胞分割】基于matlab GUI阙值+边缘+形态学+种子点图像分割【含Matlab源码 615期】
- 能源消耗总量计算公式_七、能源统计(21)
- USB接口、串口、并口有何区别
- 替代计算机内存条,电脑想加内存条,DDR3,DDR4傻傻分不清?
- ROS Noetic入门完整版
- Jira管理员配置手册
- 安卓玩机搞机-----没有第三方包 刷写第三方各种GSI系统 体验非官方系统
- kso经验积累 -- c#发送邮件
- Python获取指定时间范围内的工作日、假日日、法定节假日
- 中国石油天然气集团公司信息管理部总经理刘希俭:持续提升信息化价值的思考与实践
- 消息传递,生产者消费者
- ​Hello Qt(四十七)——QtQuick基础​