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);