我希望我的Android按钮只能点击15次。继承了我到目前为止所做的一切。有没有人有任何想法。
// RedButton
counter= 15;
redAdd1 = (Button) findViewById(R.id.redButton);
player1 = (ToggleButton) findViewById(R.id.player1Button);
player2 = (ToggleButton) findViewById(R.id.player2Button);
player1ScoreDisplay= (TextView) findViewById(R.id.player1Score);
player2ScoreDisplay= (TextView) findViewById(R.id.player2Score);
counterDisplay= (TextView) findViewById(R.id.count);
redAdd1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (player1.isChecked()) {
counter -= 1;
counterDisplay.setText("" + counter);
if (player2.isChecked()) {
counter -= 1;
counterDisplay.setText("" + counter);
}
if (counter == 0); {
redAdd1.setEnabled(false);
}
}
});
答案 0 :(得分:0)
由于我不熟悉你想要的东西,让我们从头开始,你可以按照你的意愿修改它:
Integer maxclicks = 5; Integer currentnumber = 0;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (currentnumber == maxclicks); {
button.setEnabled(false);
} else {
currentnumber = currentnumber + 1;
}
} });
正如您所看到的,我们保持简单,并将当前和最大点击变量分开。
答案 1 :(得分:0)
当它可重复使用时更好。只需将onclicklistener包装为以下装饰类的视图:
public class OnClickRateLimitedDecoratedListener implements View.OnClickListener {
private final static int CLICK_DELAY_DEFAULT = 300;
private View.OnClickListener onClickListener;
private int mClickDelay;
public OnClickRateLimitedDecoratedListener(View.OnClickListener onClickListener) {
this(onClickListener, CLICK_DELAY_DEFAULT);
}
//customize your own delay
public OnClickRateLimitedDecoratedListener(View.OnClickListener onClickListener, int delay) {
this.onClickListener = onClickListener;
mClickDelay = delay;
}
@Override
public void onClick(final View v) {
v.setClickable(false);
onClickListener.onClick(v);
v.postDelayed(new Runnable() {
@Override
public void run() {
v.setClickable(true);
}
}, mClickDelay);
}
}