You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测按钮点击监听器是否触发及CountDown场景下TextView点击状态判断

实现方案

你可以通过新增2个全局状态标记 + 监听倒计时结束回调的方式实现需求,具体逻辑如下:

  • 首先在Activity类中声明2个全局变量,分别存储当前展示的随机数、用户是否点击过TextView的状态标记:
// 存储当前TextView展示的随机数
private int currentRandomNum;
// 标记用户是否点击过当前轮次的TextView
private boolean isTvClicked = false;
  • 在你原有CountDown倒计时的启动逻辑中,每次生成新的随机数前,先将isTvClicked重置为false,避免上一轮的点击状态干扰当前轮次的判断,示例代码参考:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textView = findViewById(R.id.your_tv_id);

    // 给TextView设置点击监听
    textView.setOnClickListener(v -> {
        // 标记已点击
        isTvClicked = true;
        // 这里写你校验随机数的逻辑
        if (currentRandomNum == 你要校验的目标值) {
            // 校验通过的逻辑
        } else {
            // 校验不通过的逻辑
        }
    });

    // 你的原有倒计时逻辑
    new CountDownTimer(10000, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            // 每次生成新随机数前重置点击状态
            isTvClicked = false;
            currentRandomNum = new Random().nextInt(100); // 你的原有随机数生成逻辑
            textView.setText(String.valueOf(currentRandomNum));
        }

        @Override
        public void onFinish() {
            // 倒计时结束判断是否未点击
            if (!isTvClicked) {
                // 这里写用户未点击时要执行的操作
            }
        }
    }.start();
}
  • 额外注意:如果你的随机数是倒计时结束才生成,只需要在生成随机数的位置前重置isTvClicked即可,不需要在onTick里重复重置。

内容的提问来源于stack exchange,提问作者ayman omara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:45:00