Цикл, который не работает

#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. да, вы правы, я не смог увидеть ссылку, потому что этот сайт заблокирован в моей стране, но я понимаю ваше значение