如何在按下按钮后创建时间延迟,如果再次按下则重新开始计数

时间:2014-08-13 07:24:11

标签: android button delay counter runnable

我正在创建一个简单的计数器应用程序,我遇到了延迟问题。按下按钮时,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秒。

0 个答案:

没有答案