我有一个地图视图,它显示了一些带有 ItemizedOverlay 的 pois。当我点击 POI 时,会开始一些工作,这需要几秒钟。在 onTap 方法中,我调用处理程序来显示对话框并隐藏它。
我调试代码并检查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);