请教高手:如题,我怎么样实现点击对话框的时候,照常进行逻辑处理,如果点击对话框以外的区域的话,对话框就自动关闭了,怎么实现呢?请教高手,我是菜鸟,在线等

解决方案 »

  1.   


    用AlertDialog不行么?
    那用PopupWindow具体应该怎么用呢?
    谢谢了
      

  2.   

    说说我想法,这是可以实现的,我看了下我们现在的产品里就这样做的,做起来比较麻烦,特别是自定义这个dialog
    将整个dialog设置为全屏透明,view为你希望显示的对话框,给dialog设置触摸事件处理,同时得到当前view的大小及坐标(右上角坐标),比较当前触摸点是否在view的范围内。
      

  3.   


    用dialog只能这样做么?可以触发当失去焦点的时候关闭对话框么?
      

  4.   

    怎么没有人来回答啊??
    或者怎么在对话框的标题栏添加一个关闭的按钮,就像windows弹出的对话框那样右上方有一个关闭窗口的按钮
      

  5.   

    试试
     setCanceledOnTouchOutside(true);// 点击对话框外部取消对话框显示  
      

  6.   

    你的意思是alertdialog的右上角的关闭?我想问下你alertdialog是刚接触还是能比较随意的使用了
      

  7.   

    你可以到网上去找alertdialog的创建,默认的对话框右上角是有个X,点击可以关闭alertdialog,才开始接触没必要搞的那么复杂,看到你的帖子上问题还以为你对alertdialog很熟悉了
      

  8.   

    呵呵呵,一点都不熟悉我,只是现在做的东西有这个需求,所以就直接问这个问题了。
    默认的对话框右上角有个X?
    我现在这样new AlertDialog.Builder(MyStockActivity.this).create()的右上角没有x诶
      

  9.   

    我觉得用onKeyDown();事件比较好,只是个思路。。
      

  10.   

    试试
    setCanceledOnTouchOutside(true);// 点击对话框外部取消对话框显示你用什么手机测试的不好用呢??我这里用的samsung 手机测试的正常呀
      

  11.   

    onKeyDown()不是按下键盘的时候触发的事件么?怎么用这个呢?
      

  12.   

    我用的android 的模拟器
    alertDialog.setCanceledOnTouchOutside(true)这样就行了么?呵呵呵,我是菜鸟的很
      

  13.   

    protected Dialog onCreateDialog(int id) {
            Dialog dd=new AlertDialog.Builder(this).setTitle("删除").setIcon(
    android.R.drawable.ic_dialog_alert).setMessage("您确定要删除联系人?")
    .setNegativeButton(android.R.string.cancel, null)
    .setPositiveButton(android.R.string.ok,
    new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog,
    int which) {
    // TODO Auto-generated method stub
    delPersion();
    } }).create();
            dd.setCanceledOnTouchOutside(true);
    return dd; }我在模拟器上也能用呀,  就是点击dialg之外的地方
      

  14.   

    咦那我跟你的差不多啊,我是这样的啊
    AlertDialog ad=new AlertDialog.Builder(this).create();
    ad.setTitle(getString(R.string.choose));
    ad.setCanceledOnTouchOutside(true);
    ad.setView(textEntryView);
    ad.show();
    可是这样我这边不行诶
      

  15.   

    我实现过这个,先让这个对话框获得焦点,在设置这个对话框的背景在showAsDropDown()方法之前设置这个popupwindow.setBackgroundDrawable(new BitmapDrawable());
    如果不行可以加我QQ478319399
      

  16.   

    我是自定义DIalog的 这个有作用
      

  17.   

    非常感谢,setCanceledOnTouchOutside(true);在自定义Dialog是可用的,只不过需要在onCreate()里注册一下
      

  18.   


    怎么在onCreate()里面注册啊?
      

  19.   

    http://zhidao.baidu.com/question/462496579.html
      

  20.   

    大哥,你看看参数!是true,你改成false就可以了,菜鸟路过!
      

  21.   

    试试
     setCanceledOnTouchOutside(true);// 点击对话框外部取消对话框显示   用Dialog,这个是可以的。我曾经用过啊
      

  22.   

    setCanceledOnTouchOutside(true);
    果然很好用
      

  23.   

    setCanceledOnTouchOutside(false);这才行,不要用true
      

  24.   

    我刚使用了一下是应该dialog.setCanceledOnTouchOutside(false);这样点击对话框以外的内容就不会自动取消对话框了