我正在创建一个简单的计数器应用程序,我遇到了延迟问题。按下按钮时,textView显示+1持续2秒,然后返回原始计数器计数。这工作正常。如果我按下按钮3次,它将显示+3并在2秒后改回计数器计数。虽然,如果我按住按钮的时间超过2秒,它将在计数器计数和当前+ X计数之间切换。这是我的应用程序中按钮的代码:
p1AddL.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter1 ++;
count1 ++;
if (count1 == 0) {
if (counter1 >= 9|counter1 <= -1) {
lifepointsP1.setText("" + counter1);
} else
lifepointsP1.setText("0" + counter1);
} else {
if (count1 > 0) {
lifepointsP1.setText("+" + count1);
lifepointsP1.setTextColor(Color.argb(220, 0, 188, 0));
}
Runnable clickButton = new Runnable() {
@Override
public void run() {
count1 = 0;
lifepointsP1.setTextColor(Color.WHITE);
if (counter1 >= 9|counter1 <= -1) {
lifepointsP1.setText("" + counter1);
} else
lifepointsP1.setText("0" + counter1);
}
};
p1AddL.postDelayed(clickButton, 2000);
}
}
});
它基本上读取计数器是否大于1它显示count1文本(+ 1,+ 2,+ 3文本)然后开始延迟,如果count1等于0它显示counter1文本(原始计数)。虽然延迟从第一次按下按钮开始。
基本上,如果在2秒钟内按下按钮,我想要的就是延迟重启(从2秒倒计时)。所以我可以按下按钮多次,如果它在最后一次按下的2秒内,它不会显示计数器1文本,直到我按下按钮后离开它超过2秒。