我有按钮,他们都完成了下一个活动。
但我正在尝试完成一个具有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屏幕。而不是让我继续让其余的按钮看不见。
如果我没有完成();应用程序因内存泄漏而滞后。
由于
瓦希德
答案 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();
}
});
编辑:可能还有其他更好的方法。但是我给了你这个解决方案,因为我不知道你的目的究竟是什么。