Android 对else语句有问题

Android 对else语句有问题,android,button,if-statement,onclicklistener,Android,Button,If Statement,Onclicklistener,我目前正在尝试制作一个订单游戏。用户必须按给定的顺序按下按钮。我对else语句有什么问题。这是我的密码 private OnClickListener click2 = new OnClickListener() { List<Integer> mClickedButtonIds = new ArrayList<Integer>(); @Override public void onClick(View v) {

我目前正在尝试制作一个订单游戏。用户必须按给定的顺序按下按钮。我对
else
语句有什么问题。这是我的密码

private OnClickListener click2 = new OnClickListener() {
        List<Integer> mClickedButtonIds = new ArrayList<Integer>();

        @Override
        public void onClick(View v) {

        mClickedButtonIds.add(v.getId());       
        if (mClickedButtonIds.size() > 4 ) 
        { 
            mClickedButtonIds.remove(0);            
            int[] mDesiredOrder = new int[] { R.id.imageButton1, R.id.imageButton2, R.id.imageButton3, R.id.imageButton4 };

            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("Wrong");
            }

        }    
    }   
    }; 

private OnClickListener click2=new OnClickListener(){
List mClickedButtonIds=newarraylist();
@凌驾
公共void onClick(视图v){
添加(v.getId());
如果(mclickedbutonids.size()>4)
{ 
mclickedbutonids.移除(0);
int[]mDesiredOrder=newint[]{R.id.imageButton1,R.id.imageButton2,R.id.imageButton3,R.id.imageButton4};
if(mclickedbutonids.get(0)=mDesiredOrder[0]
&&mClickedButtonIds.get(1)=mDesiredOrder[1]
&&mClickedButtonIds.get(2)=mDesiredOrder[2]
&&mClickedButtonIds.get(3)=mDesiredOrder[3]
)
{
tv1.setText(“正确”);
}
其他的
{
tv1.setText(“错误”);
}
}    
}   
}; 

如果我是第一次玩这个游戏,
else
语句工作得很好。但是如果我在不关闭应用程序的情况下再次玩游戏,
else
语句开始出现问题。我按下的每一个按钮都会出现
else
语句,使我的
tv1
将文本设置为错误。但是
if
语句仍然可以很好地工作。这意味着,尽管它将文本设置为错误,但如果我按正确顺序单击最后一个按钮,它将文本设置为正确。有什么解决方法吗?

可能你没有在每场游戏中都创建一个新的
OnClickListener
,因此
数组列表
没有被清除。

如果是第二个块,请尝试“Else If”,而不是“Else”

但是如果我使用
else if
那么它的条件是什么?
私有OnClickListener click2=new OnClickListener(){List mclickedbutonids=new ArrayList();
在onResume()中执行此操作,而不是onCreate().看。好的,在清除
arraylist
后非常感谢。但是我仍然有一些问题。这个游戏只需要单击4次,但是如果我在清除
arraylist
后第二次玩游戏,我需要单击5次才能使它工作。因为如果我没有清除
arraylist
,那么1t次,我需要点击5次,但第2次,我只需要点击4次。有什么方法解决这个问题吗。不起作用。如果我改为3,即使我按顺序按,单词
Correct
也不会出现。我想这是由于
mclickedbutonids.get(3)=mDesiredOrder[3]
要求未得到满足。我想我只需要添加另一个按钮,用户就可以无需单击。无论如何,感谢您帮助我解决我的
arraylist
问题。我解决了我的问题。我看起来需要更改为“if(mclickedButtonnids.size()>=4)”并删除
mclickedButtonnids.remove(0);