我有一個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);