Android 如何使它只需要点击4次?

Android 如何使它只需要点击4次?,android,button,sequence,onclicklistener,Android,Button,Sequence,Onclicklistener,我正在做一个记忆游戏。然而,似乎我必须点击5次,而不是4次,它才能工作,第一次点击是一个毫无意义的点击。游戏是这样的,有4个按钮。然后4个按钮将随机闪烁。用户必须根据刚刚闪烁的4个按钮的顺序单击按钮。这是我的密码 public void onClick(View v) { mClickedButtonIds.add(v.getId()); if (mClickedButtonIds.size() > 4 ) {

我正在做一个记忆游戏。然而,似乎我必须点击5次,而不是4次,它才能工作,第一次点击是一个毫无意义的点击。游戏是这样的,有4个按钮。然后4个按钮将随机闪烁。用户必须根据刚刚闪烁的4个按钮的顺序单击按钮。这是我的密码

public void onClick(View v) {
            mClickedButtonIds.add(v.getId());

            if (mClickedButtonIds.size() > 4 ) 
            { 
                mClickedButtonIds.remove(0);            
                int[] mDesiredOrder = new int[] { ans1.getId(), ans2.getId(), ans3.getId(), ans4.getId() };
                if (mClickedButtonIds.get(0) == mDesiredOrder[0] 
                    && mClickedButtonIds.get(1) == mDesiredOrder[1] 
                    && mClickedButtonIds.get(2) == mDesiredOrder[2]
                    && mClickedButtonIds.get(3) == mDesiredOrder[3]
                    )
                {
                    tv1.setText("Correct!");
                }
                else 
                {
                    tv1.setText("Try Again!");
                }
                mClickedButtonIds.clear();
             }
           }

有没有办法解决这个问题。我知道第一次点击是为了启动下面的代码。但是,我想知道是否有其他方法可以使它只需要4次单击即可播放。

您应该检查arrayList
mclickedButonids.size()。
您应该删除
mClickedButtonIds.remove(0)

}

如果(mclickedbutonids.size()>4)行
检查是否存储了5次或更多的点击(包括当前点击)-将其更改为
=4
,以正确检查总共4次点击


您还应该删除行
mClickedButtonIds.remove(0)由于这会删除第一次存储的单击,因此第一次单击没有意义。

您应该说明您更改了什么,以及为什么询问者不会从中学习到任何东西。我以前尝试将其更改为3,但它不起作用。如果为3,则无法到达第4个按钮,因此不符合条件。大小>3。因此,将单击4个按钮。您不应该删除1个单击的按钮<代码>mclickedbutonids.remove(0)那个字符串是什么意思?@Anatol如果你编辑你的答案,我会删除这个,然后给你投票。你真是个了不起的人,你帮我解决了一个我用了一整天的时间来解决的问题。实际上,我在使用
=4
之前就试过了,但仍然无法工作。我没有想到删除
mclickedbutonids.remove(0)。实际上我也不太清楚
mClickedButtonIds.remove(0)的含义
@Anatol抱歉,我无法删除一个已接受的答案,但我按照承诺对其进行了投票。@Njol谢谢。听起来很诚实。祝你好运!
public void onClick(View v) {
    mClickedButtonIds.add(v.getId());

    if (mClickedButtonIds.size() > 3 ) {             
        int[] mDesiredOrder = new int[] { ans1.getId(), ans2.getId(), ans3.getId(), ans4.getId() };
        if (mClickedButtonIds.get(0) == mDesiredOrder[0] 
            && mClickedButtonIds.get(1) == mDesiredOrder[1] 
            && mClickedButtonIds.get(2) == mDesiredOrder[2]
            && mClickedButtonIds.get(3) == mDesiredOrder[3]
            )
        {
            tv1.setText("Correct!");
        }
        else 
        {
            tv1.setText("Try Again!");
        }
        mClickedButtonIds.clear();
     }