我目前正在尝试制作订单游戏。用户必须按给定的顺序按下按钮。我怎么会遇到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
声明仍然完美无缺。意味着虽然它将文本设置为错误但是如果我点击正确顺序的最后一个按钮,它会将文本设置为正确。对此有什么解决方案吗?
答案 0 :(得分:2)
可能你没有在每场比赛中创建一个新的OnClickListener
,所以ArrayList
没有被清除。
答案 1 :(得分:0)
尝试其他如果是第二个块而不仅仅是“Else”