В настоящее время я пытаюсь сделать заказ. Пользователь должен был нажать кнопки в указанном порядке. Как бы то ни было, у меня проблема с оператором else
. Это мой код.Проблемы с инструкцией 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 click2 = новый OnClickListener() { Список mClickedButtonIds = новый ArrayList ()' сделать это в onResume(), а не OnCreate(). –
Simon