#android #loops
#Android #циклы
Вопрос:
Я пытаюсь нажать кнопку всего два раза. Для этого я пытаюсь вставить цикл, а затем отключить, чтобы проигрыватель больше не мог нажимать эту кнопку. Я не понимаю, почему я могу нажать кнопку только один раз (показать карточку), а затем код остановится, и цикл не будет работать. Значение переменной начинается с нуля. Я пытаюсь использовать также цикл for, но результат тот же
final Button choice1 = (Button) findViewById(R.id.C);
backgroundC.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
while (j < 2){
int randomInt3 = random1.nextInt(Deck.length());
int drawableIDC = Deck.getResourceId(randomInt3, -1);
backgroundC.setBackgroundResource(drawableIDC);
j ;
}
choice1.setEnabled(false);
}
});
Комментарии:
1. Где и как
j
объявляется?2. Если вы напечатаете что-нибудь, например
j
, вы увидите, что ваш код делает не то, что вы думаете.
Ответ №1:
Причина в том, что: когда вы нажимаете, цикл запускается ( 2
раз), и после его завершения появляется disable
кнопка. Что вам нужно, так это следующий код:
final Button choice1 = (Button) findViewById(R.id.C);
backgroundC.setOnClickListener(new View.OnClickListener(){
public void onClick(View view){
if (j < 2){
int randomInt3 = random1.nextInt(Deck.length());
int drawableIDC = Deck.getResourceId(randomInt3, -1);
backgroundC.setBackgroundResource(drawableIDC);
j ;
}
else {
choice1.setEnabled(false);
}
}
});
Комментарии:
1. вы можете удалить часть else, потому что, если
j
стало больше 2, код не запускается2. @shayanpourvatan когда вы отключаете кнопку? Вам нужно убедиться,
j == 2
что кнопка отключена. Этоelse
просто «аккуратное» место для размещения этого кода.3. почему OP нужно отключить кнопку? если
j == 2
оператор then if не выполняется, поэтому эта кнопка, подобная этой, отключена.4. @shayanpourvatan да. Это не сработает. Это правда. Но «визуальное» состояние все еще включено. Что-то вроде на изображении: 1.bp.blogspot.com/-96z2MEV2chw/T1Bku6jCwlI/AAAAAAAAAXE /…
5. да, вы правы, я не смог увидеть ссылку, потому что этот сайт заблокирован в моей стране, но я понимаю ваше значение