敬酒的工作,但警告对话框不工作时,单击TabGroupActiviy itemezed覆盖? [英] Toast Work but Alert Dialog dont work when click itemezed overlay in TabGroupActiviy?

查看:98
本文介绍了敬酒的工作,但警告对话框不工作时,单击TabGroupActiviy itemezed覆盖?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的NearMe活动。我在谷歌地图想标记。然后有人点击标记或覆盖我想说明一个警报对话框。从MapGroupActivity这是我的电话MapActivity

This is my NearMe activity. I am wanna markers on google maps. Then somebody click marker or overlay i want to show one alert dialog. This my MapActivity call from MapGroupActivity

public class NearMeActivity extends MapActivity implements OnClickListener {
    private Button imgbtn_map_filter;
    private MapView mapView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.nearme_layout);

        setMapNOverlay();
        setUI();
        imgbtn_map_filter.setOnClickListener(this);

        final TabGroupActivity parentActivity = (TabGroupActivity) getParent();
        parentActivity.closeAllChildsExceptLastOne();
    }

    private void setUI() {
        imgbtn_map_filter = (Button) findViewById(R.id.btn_map_filter);
    }

    private void setMapNOverlay() {
        mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        List<Overlay> mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(R.drawable.balloon);
        MyItemizedOverlay itemezedOverlay = new MyItemizedOverlay(drawable,
                this);

        GeoPoint point = new GeoPoint(19240000, -99120000);
        OverlayItem overlayitem = new OverlayItem(point, "Holaaaa! !!",
                "Fuck offf");

        itemezedOverlay.addOverlay(overlayitem);
        mapOverlays.add(itemezedOverlay);

    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn_map_filter:
            //start activity for result da var onlar incelenecek
            Intent intent = new Intent(getParent(), TestActivity.class);
            TabGroupActivity parentActivity = (TabGroupActivity) getParent();
            parentActivity.startChildActivity ("TestActivity", intent);
            break;
        default:
            break;
        }

    }
}

这是为ItemizedOverlay类。我想显示一个警告对话框。

This is is ItemizedOverlay class. I am trying to show one alert dialog.

public class MyItemizedOverlay extends ItemizedOverlay {
    private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
    Context mContext;
    public MyItemizedOverlay(Drawable defaultMarker, Context context) {
        super(boundCenterBottom(defaultMarker));
        mContext = context;
    }

    //bir Overlay'e dokunduğu zaman olaylar olaylar 
    @Override
    protected boolean onTap(int index) {
        OverlayItem item =mOverlays.get(index);
        AlertDialog.Builder dialog= new AlertDialog.Builder(mContext);
        dialog.setTitle(item.getTitle());
        dialog.setMessage(item.getSnippet());
        try{
        dialog.show();
        }catch(Exception el){
           Log.d("Error: ---->" + e.toString)
        }
return super.onTap(index);

}

    public void addOverlay(OverlayItem overlay) {
        mOverlays.add(overlay);
        // ne zaman bir overlay eklesek populate methodunu çalıştırmamız
        // gerekmektedir. Yen bir overlay
        // nesnesi eklemek için
        // populate methodu çalıştığı zaman overlay createItem çalıştıracaktır
        populate();
    }

    // eklenen overlay'in yerini verir.
    @Override
    protected OverlayItem createItem(int i) {
        return mOverlays.get(i);
    }

    // eklenen yeni overlayın seize'ını almamız gerekmektedir
    @Override
    public int size() {
        return mOverlays.size();

    }
}

当我是写Toast.makeText(mContext,喇嘛喇嘛,Toast.LENght_LONG).show() - >运行成功
但警告对话框Builder也随之不要在自来水方法的工作。

When i was write Toast.makeText(mContext,"Bla bla",Toast.LENght_LONG).show() --> run successfully but alert dialog buider dont work in tap method.

我正在此错误:
 android.view.WindowManager $ BadTokenException:无法添加窗口 - 令牌android.app.LocalActivityManager$LocalActivityRecord@40532be8无效;是您的活动运行?

返回super.onTap(指数);

return super.onTap(index);

推荐答案

在NearMeActivity复制此code,

Copy this code in NearMeActivity,

        @Override
protected Dialog onCreateDialog(int id) {

    // TODO Auto-generated method stub

    switch (id) {
        case 0:
            return new AlertDialog.Builder(this).setTitle("Hello").setIcon(
                    R.drawable.ic_launcher).setPositiveButton("Yes",
                    new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog ,
                                int which) {

                            // TODO Auto-generated method stub

                        }
                    }).setCancelable(true).setNegativeButton("Cancel",
                    new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog ,
                                int which) {

                            // TODO Auto-generated method stub

                        }
                    })

            .setOnCancelListener(new OnCancelListener() {

                @Override
                public void onCancel(DialogInterface dialog) {

                    // TODO Auto-generated method stub
                    Toast.makeText(getApplicationContext(), "Dismiss",
                            Toast.LENGTH_SHORT).show();
                }

            }).create();


        default:
            break;
    }
    return null;
}

和调用的方法的onTap这种方法在com.google.android.maps.ItemizedOverlay的子类,显示的对话框:

And call this method from onTap method at subclass of com.google.android.maps.ItemizedOverlay to show dialog:

     @Override
    protected boolean onTap(int index) {

        // TODO Auto-generated method stub

        switch (index) {
            case 0:
                showDialog(0);
                                    break;
                     }
            }

这篇关于敬酒的工作,但警告对话框不工作时,单击TabGroupActiviy itemezed覆盖?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆