【问题标题】:setOnKeyListener onKey not working with Eclipse/ADT Android Virtual Device - Nexus OnesetOnKeyListener onKey 不适用于 Eclipse/ADT Android 虚拟设备 - Nexus One
【发布时间】:2013-06-06 14:30:29
【问题描述】:

下面是我正在使用的代码。 当按下 Enter 键时,它会拦截(消耗)按键并改为单击屏幕上的按钮。 它在我的摩托罗拉 Android 手机上运行良好,同时具有硬件键盘和屏幕键盘。 它也适用于 Eclipse/ADT 中的 Galaxy Nexus Android 虚拟设备。 但它不适用于 Eclipse/ADT 中的 Nexus One Android 虚拟设备。 有谁知道为什么会这样? 我担心使用 Nexus One 的人会下载我的应用,但它无法运行。

PS:我还尝试了其他几种 onKey 方法(使用 onKeyUp、onKeyDown 和 ACTION_UP),但它们都不适用于 Nexus One。

   MyEditText.setOnKeyListener(new EditText.OnKeyListener() 
   {
      public boolean onKey(View v, int keyCode, KeyEvent event)
      {
         if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER))
         {
         MyButton.performClick();
         return true;
         }
      return false;
      }

   });

【问题讨论】:

    标签: java android eclipse adt onkeydown


    【解决方案1】:
       MyEditText.setOnKeyListener(new EditText.OnKeyListener() 
       {
          public boolean onKey(View v, int keyCode, KeyEvent event)
          {
             if ((event.getAction() == KeyEvent.ACTION_DOWN) || (keyCode == KeyEvent.KEYCODE_ENTER))
             {
             MyButton.performClick();
             return true;
             }
          return false;
          }
    
       });
    

    也许您应该尝试使用|| 而不是&&

    【讨论】:

    • 这并不是说这段特定的代码不起作用,而是与 onKey 相关的选项(我已经尝试过)都没有在 Nexus One 虚拟设备上运行,即使它们'在其他设备上运行良好。不过,我还是尝试了你的建议。不幸的是没有运气。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-04-07
    • 2011-04-28
    • 2011-01-04
    • 1970-01-01
    • 2011-09-19
    • 2015-06-27
    相关资源
    最近更新 更多