【问题标题】:How I can leave the counter code?我怎样才能留下柜台代码?
【发布时间】:2016-08-29 10:27:31
【问题描述】:

我的问题: 我不知道,如果用户在 2 秒的计数器内单击 imageButton,我怎么能留下我的计数器代码(CountDownTimer)

我的代码:

final ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback);

avatarScroll.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ursprungAvatar = !ursprungAvatar;
            if(ursprungAvatar) {
                //image change with arrow
                ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback);
                avatarScroll.setImageResource(R.drawable.avatarback_pfeil);
                new CountDownTimer(2000, 1000) {
                    public void onTick(long millisUntilFinished) {
                        //
                    }
                    public void onFinish() {
                        //image change without arrow
                        ImageButton avatarScroll = (ImageButton) findViewById(R.id.imgBtnAvatarback);
                        avatarScroll.setImageResource(R.drawable.avatarback);
                        ursprungAvatar = !ursprungAvatar;
                    }
                }.start();

            } else {
                //image change without arrow
                ImageButton avatarScroll_ursprung = (ImageButton) findViewById(R.id.imgBtnAvatarback);
                avatarScroll_ursprung.setImageResource(R.drawable.avatarback);
            }

    }
});

【问题讨论】:

  • 您能否详细说明预期的行为?第一次点击,计时器启动,第二次点击,它应该停止?基于此,只需要在else情况下终止定时器即可。
  • 如果你的意思是“离开”你想停止它,那么你必须创建一个全局 CountDownTimer 对象并在计时器运行时调用取消......
  • 这太模糊了。用更恰当的描述来编辑你想要做的事情。
  • ...通过检查您的代码,为什么每次都创建按钮?只需制作一个全局按钮并在需要时更改其背景。

标签: java android counter


【解决方案1】:

如果我的行为正确,您需要做的就是在 else 情况下添加 timer.cancel() 并保留对创建的计时器的引用(例如,使其成为一个字段)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多