我目前正在尝试制作订单游戏。用户必须按给定的顺序按下按钮。我对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");
}
}
}
};
如果我是第一次玩游戏,则该else
声明非常有效。但是,如果我在没有关闭应用程序的情况下再次玩游戏,该else
语句就会出现问题。我按下的每个按钮都会显示一条else
语句,使我tv1
将文本设置为错误。但是该if
声明仍然可以完美地运行。意味着尽管它继续将文本设置为“错误”,但是如果我单击正确顺序的最后一个按钮,它将把文本设置为“正确”。有什么解决办法吗?
可能您没有在OnClickListener
每个游戏中都创建新游戏,所以游戏ArrayList
并没有被清除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句