4

我想知道如何每秒将 1 添加到我的 int 直到它在这种情况下达到某个数字 15。

但我只希望在按下按钮后 int 开始增加。

        @Override
        public void touchUp(InputEvent event, float x, float y,
                int pointer, int button) {
            login.addAction(Actions.moveTo(0, 310, 1));

            loginClicked = true;

            if(loginClicked == true && loginTimer == 15){
                login.addAction(Actions.moveTo(0, 430, 1));
            }
        }
    });

有我的代码,你可以看到我正在移动一些东西,然后在 15 秒后如果它保持不变,我希望它也移动回来。

4

4 回答 4

6

您可以使用计时器:

int delay = 5000; // delay for 5 sec.
int period = 1000; // repeat every sec.
int count = 0;
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask()
        {
            public void run()
            {
               // Your code

                count++;


            }
        }, delay, period);
于 2013-05-25T10:07:40.280 回答
4
   Timer _t,timer;
   int _count=1;   
   TextView _tv 

初始化定时器

    _tv = (TextView) findViewById( R.id.textView1 );              

  _t = new Timer();
            _t.scheduleAtFixedRate( new TimerTask() {
            @Override
            public void run() {

                _count++;

                runOnUiThread(new Runnable() //run on ui threa
                 {
                  public void run() 
                  { 

                     if(_count<=15)
                     {
                      _tv.setText(""+_count);
                     }
                     else
                     {
                     _t.cancel();
                     }
                 }
                 });
            }
        }, 1000, 1000 ); 

您可以使用上面的计时器。但我建议你使用处理程序

使用处理程序

      TextView _tv ;
      Handler m_handler;//= new Handler();
      Runnable m_handlerTask ;
     _tv = (TextView) findViewById( R.id.textView1 );
     m_handler = new Handler();
      m_handlerTask = new Runnable()
    {
         @Override 
         public void run() {
             if(_count<=15)
             {
              _tv.setText(""+_count);
              _count++;
             }
            else 
              {
                m_handler.removeCallbacks(m_handlerTask);
              }
              m_handler.postDelayed(m_handlerTask, 1000);
         }
    };
    m_handlerTask.run(); 
于 2013-05-25T10:09:14.360 回答
2

与处理程序:

   Handler handler = new Handler();


    private int counter = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (++counter < 15) {
                    handler.postDelayed(this, 1000L);
                    return;
                }

                handler.removeCallbacks(this);
            }
        }, 1000L);

   }
于 2013-05-25T10:30:16.820 回答
1

您也可以使用 a Countdown Timerjust put at the ontickan 元素int = bob++;

String convertbob = String.valueof(bob);
TextViewName.setText(convertbob);

你想做什么onFinish

我希望它对其他人有所帮助,欺骗倒计时的真正功能是明智的。

于 2015-08-30T11:30:27.867 回答