程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了递增countDownTimer Android大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决递增countDownTimer Android?

开发过程中遇到递增countDownTimer Android的问题如何解决?下面主要结合日常开发的经验,给出你关于递增countDownTimer Android的解决方法建议,希望对你解决递增countDownTimer Android有所启发或帮助;

您应该知道,onFinish倒计时类中的时间到了时不必手动调用,也不会onFinish因为一个导致另一个而取消或手动递减任何东西。请尝试以下操作,看它是否适合您要完成的任务。希望您能注意到,我没有看到一个实用的理由来查看按钮“是否不再被单击”。

public class MainActivity extends Activity {

    button incrementTime, startTime;
    public TextVIEw timedisplay;
    long millisInFuture = 1000;

    @OverrIDe
    public voID onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentVIEw(R.layout.activity_main);

        incrementTime = (button) findVIEwByID(R.ID.button2);
        startTime = (button) findVIEwByID(R.ID.button3);
        timedisplay = (TextVIEw) findVIEwByID(R.ID.mycounter);

        resetText();

        incrementTime.setonClickListener(new OnClickListener() {

            public voID onClick(VIEw v) {
                millisInFuture += 1000;
                resetText();
            }
        });

        startTime.setonClickListener(new OnClickListener(){
            public voID onClick(VIEw v) {
                CountDownTimer wavetimer = new @R_697_6674@r(millisInFuture + 3000, 1000).start();
                // ^ add 3 seconds.
            }
        });}

    protected voID resetText() {
        timedisplay.setText("Time left: " + millisInFuture / 1000);
    }

    public class @R_697_6674@r extends CountDownTimer  {

        private long millisActual;

        public @R_697_6674@r(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
            millisActual = millisInFuture - 3000;
        }

        @OverrIDe
        public voID onTick(long millisUntilFinished) {
            //v start showing the tick after 3 seconds.
            if (millisUntilFinished <= millisActual) {
                timedisplay.setText("Time left: " + millisUntilFinished / 1000);                
            }
        }

        @OverrIDe
        public voID onFinish() {
            timedisplay.setText("Countdown Finished");
        }
    }

    @OverrIDe
    public Boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

解决方法

对CountDownTimer有疑问。我必须制作一个应用程序,允许用户每次单击按钮都将时间增加+1。然后,在停止单击按钮后,它会等待三秒钟,然后开始倒计时。

我在下面粘贴了我的代码。

我的问题是:我似乎无法使数字递增正常工作,但是似乎在停止递增数字(onStop())之后,它直接转到了(onFinish())。而不是转到OnTick()并每秒减少1。我已经尝试了多种方法来解决此问题,但被困住了。

谁能引导我朝正确的方向做事?任何帮助,将不胜感激。感谢你们!

public class MainActivity extends Activity {

    Button incrementTime,startTime;
    public TextView timedisplay;
    public @R_697_6674@r wavetimer;
    private long millisInFuture;
    private long millisUntilFinished;
    private long countDownInterval;
    private long onclicktime;
    //private WaveInterface model;
    public int countdown;

@Override
public void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.activity_main);     
    incrementTime = (Button) findViewById(R.id.button2);
    startTime = (Button) findViewById(R.id.button3);
    incrementTime.setText("Increment Time");
    startTime.setText("Start");
    timedisplay = (TextView) findViewById(R.id.mycounter);
    timedisplay.setText("Time Left: " + millisUntilFinished);
    wavetimer = new @R_697_6674@r (millisInFuture,1000);


    incrementTime.setOnClickListener(new OnClickListener(){
    int countdown = 01;
   /**
    * On click button Listner
 * @return 
    */
    public void onClick(View v) {
        millisInFuture++;
        return; 
    }

   });
    startTime.setOnClickListener(new OnClickListener(){
    public void onClick(View v) {
        wavetimer.start();
    }
});}

@Override
public Boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main,menu);
    return true;
}


public class @R_697_6674@r extends CountDownTimer  {
public long millisInFuture;
private long countDownInterval;


public @R_697_6674@r(long millisInFuture,long countDownInterval) {
    super(millisInFuture,countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
    millisUntilFinished--;
    if (millisUntilFinished == 0){
        wavetimer.onFinish();
    }
    else {
    timedisplay.setText("Time Left: " + millisUntilFinished / 1000);
    }

}
@Override
public void onFinish() {
    timedisplay.setText("Countdown Finished");
    wavetimer.cancel();
}


public void onStop() {
    millisInFuture = millisInFuture + 1;
    timedisplay.setText("Time Left: " + millisInFuturE);
}

我似乎无法弄清楚如何正确增加数字。我尝试了多种方法,并且一直在搞砸。不知道在哪里看。任何帮助,将不胜感激。感谢你们!

大佬总结

以上是大佬教程为你收集整理的递增countDownTimer Android全部内容,希望文章能够帮你解决递增countDownTimer Android所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。