首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >setOnChronometerTickListener的问题

setOnChronometerTickListener的问题
EN

Stack Overflow用户
提问于 2018-05-02 05:43:17
回答 1查看 744关注 0票数 2

所以我试着摆弄android studio,决定做一个简单的计数器应用程序。每次我按下按钮(覆盖整个屏幕),它会加1,如果我按住按钮3秒,计数器就会复位。就这么简单。但不幸的是,似乎无法让setOnChronometerTickListener工作,我需要它来查看计时器何时达到3s。下面是我的代码:

代码语言:javascript
运行
复制
var button = findViewById<Button>(R.id.button)
val chrono = Chronometer(this)

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    button.setOnTouchListener(OnTouchListener { v , event ->
        when (event.action) {
            MotionEvent.ACTION_DOWN -> { chronoStart()}
            MotionEvent.ACTION_UP -> { chrono.stop()}
        }
        false
    })

}

fun chronoStart() {

    chrono.start()

    chrono.setOnChronometerTickListener() {}
}

var counter = 0;

fun count(view: View){

    val button = view as Button

}

我已经试过了

代码语言:javascript
运行
复制
chrono.setOnChronometerTickListener(chrono.onChronometerTickListener!!) {}

我还尝试了我在网上看到的另一个代码,但它不是最新的。对于如何解决这个问题,或者甚至是实现相同结果的不同方法,有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-26 23:16:45

以下是对我起作用的方法。

我在activity中使用了接口Chronometer.OnChronometerTickListener

代码语言:javascript
运行
复制
package com.demo.tappycounterappy

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import android.os.SystemClock
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.Chronometer
import android.widget.TextView

class MainActivity : AppCompatActivity(), Chronometer.OnChronometerTickListener {

    private lateinit var _chronometerTimer:Chronometer

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        _chronometerTimer = findViewById(R.id.chronometer_timer)
        _chronometerTimer.base = SystemClock.elapsedRealtime() + 5000
        _chronometerTimer.setOnChronometerTickListener(this)
        _chronometerTimer.start()


    }

    override fun onChronometerTick(chronometer: Chronometer){
        Log.e("onChronometerTick", "called")
    }
}

我已经测试过了,我的onChronometerTick函数每秒都会被调用。

注意:是的,就像你说的那样。以下代码不起作用

代码语言:javascript
运行
复制
_chronometerTimer.setOnChronometerTickListener ( Chronometer.OnChronometerTickListener {

            fun onChronometerTick(chronometer:Chronometer) {
               Log.e("onChronometerTick", "called")
            }

        })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50124273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档