私は ItemizedOverlay でいくつかの pois を示す mapview を持っています。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);