【问题标题】:AND operator is not working for onKeyUp methodAND 运算符不适用于 onKeyUp 方法
【发布时间】:2014-08-01 01:25:21
【问题描述】:

您好,我想知道为什么AND 运算符在这里不起作用?即使没有运营商,它也可以正常工作,但包含它有什么问题?

else if (keyCode == KeyEvent.KEYCODE_CTRL_LEFT && keyCode == KeyEvent.KEYCODE_S) {
    int visibility=new_Sell_order_cart.getVisibility();
    if(visibility==View.VISIBLE)
    {
        openCart(); 
    }
}

如果不可能,jQuery 开发人员如何实现这一目标

        if (e.keyCode == 65 && e.ctrlKey) {
        alert('ctrl A');
    }
});

【问题讨论】:

  • 您在寻找 OR 运算符吗?当其中一个或两个语句为false...时,AND 将返回 false...
  • 你如何期望keyCode 等于两个不同的东西?
  • 除非你有一台量子计算机,否则keyCode不能同时有两个不同的值
  • 我想通过单击 LEFT_CTRL 和 s 来执行任务。
  • @BlueGreen:我以前没有做过 Android 编程,但我假设你是从 KeyEvent 中获取键码的,对吗?您不想检查事件的另一个属性,例如它的meta state 吗?

标签: java android


【解决方案1】:

keyCode 不能同时是两个键。它可以是 CTRL_LEFT 或 KEYCODE_S。

此语句返回 false,因为其中任何一个都为真,但不能同时为真。

(就像a==3 && a==4,a不能同时是3和4)

keyCode == KeyEvent.KEYCODE_CTRL_LEFT && keyCode == KeyEvent.KEYCODE_S

您可能正在寻找 OR (||) 运算符:

 else if (keyCode == KeyEvent.KEYCODE_CTRL_LEFT || keyCode == KeyEvent.KEYCODE_S) {

编辑:

如果你想检查两个按键。这是this 帖子中建议的解决方案。

一种方法是自己跟踪当前的密钥 下来。

当你得到一个 keyPressed 事件时,将新的键添加到列表中;当你 获取 keyReleased 事件,从列表中删除密钥。

然后在您的游戏循环中,您可以根据列表中的内容执行操作 键。

【讨论】:

    【解决方案2】:

    我有一个解决方案,我知道它不符合要求,但它完全满足了我的要求。

           else if (isCTRLisPressed(17) && keyCode == KeyEvent.KEYCODE_S) {
            int visibility=new_Sell_order_cart.getVisibility();     
            if(visibility==View.VISIBLE)
            {
                openCart(); 
            }
        }     
    

       public boolean isCTRLisPressed(int i){
    if(i==17){
        System.out.println(" key code of ctrl"+i);
        return true;
    }
    else {
        System.out.println("key code in else "+i);
        return false;
    }
    }
    

    【讨论】:

    • 那么 AND 运算符在这里有什么用呢?直接你在这里硬编码并在值为17时返回true......所以你现在的条件变成if(true && keyCode == KeyEvent.KEYCODE_S),其中&&运算符没用......
    • 类似的东西,,,这就是为什么我告诉“不符合标准”
    猜你喜欢
    • 2011-01-13
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多