Android - Как закончить кнопку при использовании setVisibility - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть кнопки, и все они заканчивают, чтобы перейти к следующему занятию.

Но я пытаюсь завершить кнопку с setVisibility, как пример кода ниже.

Button failfiveButton = (Button)findViewById(R.id.failfive);

failfiveButton.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {
          Button button = (Button) v;
          button.setVisibility(View.INVISIBLE);
          mSoundManager.playSound(2);
          finish();
    }
});

Button failsixButton = (Button)findViewById(R.id.failsix);

failsixButton.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {
          Button button = (Button) v;
          button.setVisibility(View.INVISIBLE);
          mSoundManager.playSound(2);
          finish();
     }
});

Потому что у меня есть около шести кнопок кода выше, и если я добавлю finish(); под mSoundManager.playSound(2); он возвращается к первому экрану .main. Вместо того, чтобы позволить мне продолжить и сделать остальные кнопки невидимыми.

Если я не закончу (); приложение отстает от слишком большой утечки памяти.

Спасибо

Вахид

1 Ответ

0 голосов
/ 29 сентября 2011

Это происходит потому, что этот метод вызывается при каждом нажатии кнопки.не важно сколько кнопок ты нажимаешь.здесь вы заканчиваете свою активность для каждого нажатия кнопки, так что это происходит.глупое решение может быть таким:

private static int count = 0;
private static int count1 = 0;
failfiveButton.setOnClickListener(new OnClickListener() {

     public void onClick(View v) {
count++
         Button button = (Button) v;
         button.setVisibility(View.INVISIBLE);
    mSoundManager.playSound(2);
if(count == 6)
    finish();
}
});

    Button failsixButton = (Button)findViewById(R.id.failsix);

        failsixButton.setOnClickListener(new OnClickListener() {

             public void onClick(View v) {
                  count1++
                 Button button = (Button) v;
                 button.setVisibility(View.INVISIBLE);
            mSoundManager.playSound(2);
if(count1==6)
            finish();
        }
        });

Редактировать: могут быть и другие лучшие способы сделать это.но я дал вам это решение, так как не знаю, какова ваша цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...