安卓ProgressDialog.show(),无法显示等待框

先给大家把我的解决代码贴出来:

package com.park;


import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Objects;
import java.util.Timer;
import java.util.TimerTask;
import java.util.UUID;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.ParcelUuid;
import android.text.format.Time;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.webkit.ConsoleMessage.MessageLevel;
import android.widget.ImageView;
import android.widget.TextView;
import android.bluetooth.*;

import android.widget.Toast;

/**

 * Created by lenovo on 2015/5/25.
 */
public class CommunityParking extends Activity implements View.OnClickListener {

private ProgressDialog progressDialog, progressDialog2, progressDialog3;
private int parkNum = 50;
private ImageView back, around_parking, zero, ten, oneHour, threeHour;
private Intent intent;
private TextView num;
private Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.community_parking);
num = (TextView) findViewById(R.id.num);
int a = 10;
back = (ImageView) findViewById(R.id.back);
around_parking = (ImageView) findViewById(R.id.around_parking);
back.setOnClickListener(this);
around_parking.setOnClickListener(this);
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {

@Override
public void run() {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
public void run() {
parkNum++;
num.setText("" + parkNum);
progressDialog.dismiss();
}
});
}
};
progressDialog = ProgressDialog.show(this, "", "数据加载中,请稍后...");
timer.schedule(timerTask, 4000, 4000);
zero = (ImageView) findViewById(R.id.zero);
ten = (ImageView) findViewById(R.id.ten);
oneHour = (ImageView) findViewById(R.id.oneHour);
oneHour.setOnClickListener(new test());
threeHour = (ImageView) findViewById(R.id.threeHour);

threeHour.setOnClickListener(new test2());

}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.back:
intent = new Intent(this, MainActivity.class);
startActivity(intent);
break;
case R.id.around_parking:
intent = new Intent();
intent.setAction("android.intent.action.AROUPARK");
startActivity(intent);
break;
                }
  }

class test implements OnClickListener {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
progressDialog2 = ProgressDialog.show(CommunityParking.this, "","车位估算中,请稍后...");
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
progressDialog2.dismiss();
ten.setVisibility(View.VISIBLE);
}
}, 1000);
}
}

class test2 implements OnClickListener {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
progressDialog3 = ProgressDialog.show(CommunityParking.this, "","车位估算中,请稍后...");
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
progressDialog3.dismiss();
zero.setVisibility(View.VISIBLE);
}
}, 1000);
}
}

}

     是这样的,我在oncreate()里面执行的,progressdialog.show();可以正常的显示进度框,但是当我给xml页面中的一个imageview设置点击事件之后,调用progressdialog.show()无法显示进度框。因为一开始我是这样定义的点击事件,我让CommunityParking  implements Onclicklistner,然后统一去处理点击监控事件,但是我发现这种方法无法显示等待对话框,然后我用通过new test(),新建出点击事件的监听类,然后就可以显示等待对话框了。现在还不知道为什么会这样,但是问题已经解决了。

     还有一点,一开始我用的thread.sleep().让线程暂停两秒,但是这样的话总是出错,而且无法显示等待提示框,后来我搜的stackoverflow,上面说用handler去处理程序等待问题,最后问题解决。具体大家可以参考我的代码,有什么问题可以留言。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值