0

我试图了解如何制作一个按钮,当它被按下时会锁定一个值,当它再次被按下时它会解锁。

我的方法如下:

boolean r1 = false;
boolean r2 = true;
private boolean flipFlop(boolean read, int i)
{
    if(read == true)
    {
        if (r1 == true && r2 == false)
        {
            r1 = false;
            r2 = true;
        }
        else if(r1 == false && r2 == true)
        {
            r1 = true;
            r2 = false;
        }   


    }

    return r1;
}

在 onTouch 下调用 FlipFlop 方法,如下所示:

public boolean onTouch(View view, MotionEvent motion)
        {

            boolean pressCheck = false;

            switch(motion.getAction())
            {
            case MotionEvent.ACTION_UP:
            {

                pressCheck = flipFlop(view.isPressed(), 1);
                textView.setText("State is: " + pressCheck);
            }

            case MotionEvent.ACTION_DOWN:
            {
                pressCheck = flipFlop(view.isPressed(), 1);
                textView.setText("State is: " + pressCheck);

            }
            }
            return false;

        }

单击一次时,状态设置为 false 并且不会更改。双击时,它会在两种状态之间翻转。这是为什么?

此外,当我尝试使用数组来保存状态时,它锁定为 true 并且在双击时不会改变:

private boolean[][] latch = {{false, false, false}, {true, true, true}};

public boolean flipFlop(boolean read, int i)
{
    if(read == true)
    {
        if(latch[i][2] == true && latch[i][1] == false)
        {
            latch[i][1] = true;
            latch[i][2] = false;
        }
        else if(latch[i][2] == false && latch[i][1] == true)
        {
            latch[i][1] = false;
            latch[i][2] = true;
        }
    }

    return latch[i][1];

}

4

0 回答 0