Android - 如果使用setVisibility,如何完成按钮

时间:2011-09-29 05:08:16

标签: android memory memory-leaks

我有按钮,他们都完成了下一个活动。

但我正在尝试完成一个具有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 :(得分:0)

它的发生是因为单击按钮时会调用此方法。它不关心你点击了多少个按钮。在这里,您将完成每次按钮单击的活动,所以这种情况正在发生。一个愚蠢的解决方案可能是这个

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();
        }
        });

编辑:可能还有其他更好的方法。但是我给了你这个解决方案,因为我不知道你的目的究竟是什么。