【发布时间】: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 对象并在计时器运行时调用取消......
-
这太模糊了。用更恰当的描述来编辑你想要做的事情。
-
...通过检查您的代码,为什么每次都创建按钮?只需制作一个全局按钮并在需要时更改其背景。