我有一个mapview显示一些pois与ItemizedOverlay。当我点击一个POI时,一些工作开始,并且需要几秒钟。在onTap方法中,我调用处理程序来显示对话框并隐藏它。progressDialog不显示
我调试代码,我检查处理程序的开关case Util.SHOW_DIALOG:
被称为正确的,但不被显示给用户的对话框.....
什么是错在我的代码?
这是我MyMapActivity类的一部分,因为你可以看到我的MapView富人的处理程序:
public Handler dialogHandler;
private ProgressDialog progressDialog;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
.
.
.
/* handler para mostrar y ocultar el reloj de carga */
dialogHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case Util.SHOW_DIALOG:
progressDialog = ProgressDialog.show(MyMapActivity.this, "" , "Cargando...", false);
break;
case Util.HIDE_DIALOG:
if(progressDialog != null)
progressDialog.dismiss();
progressDialog = null;
break;
}
}
};
这是ItemizedOverlay类的一部分,ItemizedOverlay
的和Ontap方法调用这段代码的处理程序:
protected boolean onTap(int index) {
try{
OverlayItem item = (OverlayItem)this.mOverlays.get(index);
map.dialogHandler.sendEmptyMessage(Util.SHOW_DIALOG);
.
.
//doing some work
.
.
map.dialogHandler.sendEmptyMessage(Util.HIDE_DIALOG);