android中如何让progressdialog停下来,怎么进度条老是读进度停不下来呀
publicclassMyProgressDialogTestActivityextendsActivity{/**Calledwhentheactivityisfirs...
public class MyProgressDialogTestActivity extends Activity {
/** Called when the activity is first created. */
private TextView textView;
private Button button;
private ProgressDialog progressDialog;
private boolean isRunning=true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(TextView)findViewById(R.id.textview1);
button=(Button)findViewById(R.id.button1);
progressDialog=new ProgressDialog(MyProgressDialogTestActivity.this);
setListener();
}
private void setListener() {
// TODO Auto-generated method stub
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
progressDialog.show(MyProgressDialogTestActivity.this, "请等待", "等待中........", true, false);
new Thread(){
public void run(){
Calculation.calculate(4);
handler.sendEmptyMessage(0);
}
}.start();
}
});
}
private Handler handler=new Handler(){
public void handleMessage(Message message){
progressDialog.dismiss();
textView.setText("操作成功了");
super.handleMessage(message);
//isRunning=false;
}
};
} 展开
/** Called when the activity is first created. */
private TextView textView;
private Button button;
private ProgressDialog progressDialog;
private boolean isRunning=true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView=(TextView)findViewById(R.id.textview1);
button=(Button)findViewById(R.id.button1);
progressDialog=new ProgressDialog(MyProgressDialogTestActivity.this);
setListener();
}
private void setListener() {
// TODO Auto-generated method stub
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
progressDialog.show(MyProgressDialogTestActivity.this, "请等待", "等待中........", true, false);
new Thread(){
public void run(){
Calculation.calculate(4);
handler.sendEmptyMessage(0);
}
}.start();
}
});
}
private Handler handler=new Handler(){
public void handleMessage(Message message){
progressDialog.dismiss();
textView.setText("操作成功了");
super.handleMessage(message);
//isRunning=false;
}
};
} 展开
展开全部
线程里 这个 Calculation.calculate(4); 计算完了吗 你是做的处理是 处理完后台线程计算以后 通过handler通知UI关闭 进度条 ,有可能是因为 你的线程里的计算没有停止。 你在 handleMessage里 打印一句话 看是否执行到这里了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dismiss()方法是肯定的
你把super.handleMessage(message)去掉试试
你把super.handleMessage(message)去掉试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dismiss()不行么。。cancel()呢。。
追问
我两个都试了,就是不停,不知道为什么
追答
两种方法:1.progressDialog= progressDialog.show(TestSeerbarActivity.this, "请等待",
"等待中........", true, false);
因为这个show()方法实际是生新生成了一个dialog所以要这progressDialog的引用指向这个新的dialog
2.progressDialog = new ProgressDialog(this);
progressDialog.setTitle("请等待");
progressDialog.setMessage("等待中........");
progressDialog.setCancelable(false);
...
...
progressDialog.show();直接用show()方法就行。
...
建议用第二种方法。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询