精华内容
下载资源
问答
  • 使用过popupWindow的时候,我们为了其它地方不可点击,我们一般会pw.setFocusable(true),但是当我们这样设置之后,问题出现了,按返回键或者menu菜单键没有反应,这是原因呢? PopupWindow 跟我们的 Activity 不...

    先爆照:

    问题:

    使用过popupWindow的时候,我们为了让其它地方不可点击,我们一般会pw.setFocusable(true),但是当我们这样设置之后,问题出现了,按返回键或者menu菜单键没有反应,这是原因呢?

    PopupWindow 跟我们的 Activity 不一样,因为我们在构造 PW 的时候往往不是继承来的,而是 new 出来的,所以不能使用重写 PW 的 onKeyDown() 之类的方法来截获键盘事件。

    比如我们这样写,然并卵,毛反应都没有

     

        // 按一下退出程序
        @Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                // 按返回退出popupwindow.dismiss();
                if (mPopupWindow != null && mPopupWindow.isShowing()) {
                    mPopupWindow.dismiss();
                }
                return super.dispatchKeyEvent(event);
            } else {
                return super.dispatchKeyEvent(event);
            }
        }

     

    解决办法:

    1、

    new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true);
    关键在于最后一个参数,ADK 给出的提示是 Focusable,顾名思义就是该 PW 的 Focusable 属性,让它能够接受焦点。
    当然你也可以手动设置它:
    PW.setFocusable(true);
    PW.setFocusableInTouchMode(true);  //为了保险起见加上这句
    此时实际上还是不能起作用的,百度给出的结论是,必须加入下面这行作用未知的语句才能发挥作用:
     
    pw.setBackgroundDrawable(new BitmapDrawable()); // www.linuxidc.com响应返回键必须的语句
    请放心,设置 BackgroundDrawable 并不会改变你在配置文件中设置的背景颜色或图像。
     

    2、

    LayoutInflater mLayoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
    View v = mLayoutInflater.inflate(R.layout.gridview, null);
    mPopupWindow = new PopupWindow(v, LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT);
    mPopupWindow.setOutsideTouchable(true);
    mPopupWindow.setFocusable(true);
    mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
    mPopupWindow.showAtLocation(findViewById(R.id.line),
    Gravity.BOTTOM, 0, 0);
    GridView gv = (GridView) v.findViewById(R.id.gridView1);
    gv.setAdapter(new BodyAdapter());
    gv.setOnItemClickListener(this);
    v.setFocusableInTouchMode(true);
    v.setOnKeyListener(new android.view.View.OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if ((keyCode == KeyEvent.KEYCODE_MENU)&& (mPopupWindow.isShowing())&&i==1) {
    mPopupWindow.dismiss();
    return false;
    }
    i=1;
    return false;
    }
    });
    return false;
    我是这样解决的,当我们弹出来popwindow后,就相当于打开了另外一个“Activity“,所以不能再监听原来的,要到另外一个”Activity“也就是popwindow里面做监听,popwindow里面的最外层的view 我这里是linearlayout可以监听menu事件,在它里面设置就行
     
    为了双保险,我2个都采取了,项目里面代码如下
     /**
         * 点击评分,如果评分后,显示的弹出框
         */
        private void makePopupWindows() {
            View view = LayoutInflater.from(HomeActivity.this).inflate(
                    R.layout.background, null);
            mPopupWindow = new PopupWindow(view, mScreenWidth, 600);
            WindowManager.LayoutParams params = getWindow().getAttributes();
            params.alpha = 0.5f;
            getWindow().setAttributes(params);
            mPopupWindow.setOutsideTouchable(true);
            mPopupWindow.setFocusable(true); // 设置PopupWindow可获得焦点
            mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
            mPopupWindow.showAsDropDown(background_button);
            view.setFocusableInTouchMode(true);
            mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
            view.setOnKeyListener(new android.view.View.OnKeyListener() {
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                 // TODO Auto-generated method stub
                    if (keyCode == KeyEvent.KEYCODE_BACK &&mPopupWindow.isShowing()) {
                        mPopupWindow.dismiss();
                        WindowManager.LayoutParams params= getWindow().getAttributes();
                        params.alpha=1.0f;
                        getWindow().setAttributes(params);
                        return true;
                    }
                    return false;
                }
            });
        }
     

    好了 ,解决了,如果你也遇到这样的情况希望能帮到你。
     

     

     

     

     

     

     

     

     

     

    展开全文
  • 品牌型号:联想GeekPro ...1第一步首先检查鼠标和计算机之间的连接端口,如果没有接触不良,请按F5刷新,然后按Win + D返回桌面2第二步然后使用箭头找到这台计算机,在键盘右侧的Ctrl和Win之间找到文本,单击...

    0d79e0e8b725e6e1a75d4be16b0588a6.png
    • 品牌型号:联想GeekPro 2020

      系统:win10 1909 64位企业版

      某些用户可能具有不同的计算机型号,但是相同的系统版本适用于此方法。

      如果鼠标不响应怎么办?让我与您分享有关鼠标如何不响应的详细教程。

    • 1第一步首先检查鼠标和计算机之间的连接端口,如果没有接触不良,请按F5刷新,然后按Win + D返回桌面

      0d2bfe1b3474ee1955dd3a3ce0c72840.png

      db4773bfa1580de90f5131f27ba059f1.png
    • 2第二步然后使用箭头键找到这台计算机,在键盘右侧的Ctrl和Win键之间找到文本键,单击它,选择“管理”,然后按Enter进入

      cc3b7ddff9e4c5e29055227ecdf297cb.png
    • 3第三步使用下方的按钮选择设备管理器,按Tab键,然后按箭头键找到鼠标和其他定点设备,选择鼠标型号,按Enter键,然后检查设备状态是否正常。

      67e8d13b69bbe3e5c49e3d32e186de84.png

      cbff584cc39499384fc2b97334e59adf.png
    • 4第四步按Tab键和向右箭头键切换到驱动程序列,然后按Tab键,选择更新驱动程序,按Enter键,再次按Enter键,按ESC键退出此界面,最后使用向下箭头键进行选择。选择启用设备,然后按Enter。

      8bca17e71b70c8f4a722f3e9ea176559.png

      67e16d08ee094fee278cd86993c8846b.png

      7e1c258c007ad58fabe5a2dc25b2da1d.png

      以上是鼠标无响应时应采取的措施的内容,希望对您有所帮助。

    展开全文
  • 易语言如何使用处理事件

    千次阅读 2020-06-13 09:37:40
    易语言中的 处理事件(), 一个比较简单的理解是:程序反应过来。 这个函数一般是用在延时之后,如果不用的话程序很容易形成假死,加了处理事件() 就可以避免这种情况,处理事件() 是暂时把系统的操作权让出给其他...

    易语言中的 处理事件() , 一个比较简单的理解是:让程序反应过来。

    这个函数一般是用在延时之后,如果不用的话程序很容易形成假死,加了处理事件() 就可以避免这种情况,处理事件() 是暂时把系统的操作权让出给其他的程序 这样可以避免程序假死。

    暂时转让控制权,以便让 Windows 操作系统有机会处理其它的如用户键盘或鼠标输入等事件。直到操作系统处理并发送完程序队列中的所有事件后,命令才会返回。

    最典型的用法就是放在延时()命令后面可以防止程序假死!

    一个 循环 要搜索电脑上的文件,若循环内 没有加处理事件() 的话,在循环 未结束 之前,你没办法操作 你的软件(比如要 停止搜索),因为 计算机一直 在计算循环内的程序,没时间 空间 来接受别的事件(如停止搜索)也是假死状态。

    若循环内 加了处理事件()的话, 处理事件()的作用 就是给你一个 可以操作的 时间 、空间 让你去停止 这个循环

    总之:处理事件() 可以简单的理解为 短暂的 暂停一下程序 让用户有时间来操作。一般 处理事件() 是放在多次循环中.

    多线程中要不要用 处理事件()

    .版本 2
    
    .子程序 测试线程
    
    .判断循环首 (运行 = 真)
    ' 这里是程序代码
    ' 这里是程序代码
    ' 这里是程序代码
    ' 这里是程序代码
    ' 这里是程序代码
    ' 这里是程序代码
    延时 (200)
    处理事件 ()
    .判断循环尾 ()

    如上图所示:
    线程中究竟要不要加延时跟处理事件?这个一直拿捏不好。
    一、如果不加延时或延时过快,比如,程序代码是修改某一标签标题,那么这时速度过快就造成标签不停的闪动。但某些功能必须要执行很快和能及时刷新。
    二、要不要在尾部加上:处理事件() 有时好像不加也行,但有时不加就会造成CPU飚升。
    网友解答举例:
    使用精易模块的 程序_延时() 就行了 而且,那个是根据自己需要来算的
    比如,你代码执行完都需要点时间,你不延时,也没有什么问题,但是,如果你代码执行完成很快,那么循环又很多,就容易卡死,标签显示,顶多是没有反应过来,不会显示标题,但是,你用标签1.刷新,还是会显示的,不冲突就没有问题。。。
    对于处理事件 线程中,很少用到,因为这个主要是单线程为了不卡界面而使用的,当然了,如果你多线程也卡页面,也能使用这个,呵呵。。。

    举例

    新建一 按钮)
    .版本 2
    
    .子程序 _按钮1_被单击
    .局部变量 i, 整数型
    
    .计次循环首 (100000, i)
        _启动窗口.标题 = 到文本 (i)
        处理事件 ()
    .计次循环尾 ()

    不加处理事件的话,就不能动窗口了。如果发现有假死什么的,可以用。

    原文:易语言处理事件() 如何用

    展开全文
  • 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数...
  • 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数...
  • previous up contents next C 语言常见问题集 原著:Steve Summit 翻译:朱群英, 孙 云 修订版 0.9.4, 2005年6月23日... o 8.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回串却是垃圾信息。 ...
  • 本书在向个人电脑用户,系统而详细地讲解了电脑的常见故障,同时读者更直接、更深刻地了解电脑故障产生原因和排除方法,从而达到能够自己解决电脑故障的目的。 本书分10章,共有1000多个实例,编写时从产生电脑...
  • return state //如果没有匹配上就直接返回原 state } } </code></pre> 如上所示,每个 action.type 的 case (A/B/C),都有一个专门对应的数据处理函数 (handleA/handleB/handleC),处理完之后...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    1.1 我如何决定使用那种整数类型? . . . . . . . . . . . . . . . . . . . 1 1.2 64 位机上的64 位类型是什么样的? . . . . . . . . . . . . . . . . 1 1.3 怎样定义和声明全局变量和函数最好? . . . . . . . . ....
  • php高级开发教程说明

    2008-11-27 11:39:22
    能识别不同的变量类型,但没有严格的类型检查, P H P识别类,但没有结构体类型,类似的例子 很多,但你可能已领会到了关键一点: P H P融合了许多种不同的解决问题的思想,形成了一种全 新的、独一无二的方法。 ...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和连接点、枚举器和集合以及线程管理等等。 ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 ...
  • ExtAspNet_v2.3.2_dll

    2010-09-29 14:37:08
    目标是创建没有ViewState,没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源...
  • 但在Get_Config_Table函数中有可能失败返回而不给该指针赋值。因此,以后使用的可能是一个非法指针。 指针的使用是非常灵活的,同时也存在危险性,必须小心使用。指针使用的危险性举世共知。在新的编程思想中,指针...
  • 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, Firefox 3.0+, Chrome 2.0+, Opera 9.5+, Safari 3.0+ 注:ExtAspNet基于一些开源的程序ExtJS, ...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    可能的话,可以到ic37去买一些小零件,自己搭一个小系统它工作起来。 HOTLEK的单片机是RISC结构的8位单片机,它可以广泛应用在家用电器、安全系统、掌上游戏等方面。大概来说可以分成I/O型单片机、LCD型单片机...
  • The GNU C Library :本手册的目的是告诉你如何使用GNU C库。 框架 C++通用框架和库 abseil-cpp :Abseil C ++ 通用库。 Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合。 ...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

如何让返回键没有反应