这可能是最愚蠢的noob问题,但我无法在任何地方找到答案 - 也许是因为我的术语不对,可能是因为它不可能。
我要做的是确定Android中的计时器小部件是否正在运行,但更一般的问题是:
如何以编程方式阅读IDE /调试器中可以看到的字段值?
例如,如果我在计时器启动后设置断点,在变量列表中(或在评估计时器时),我可以看到一堆有用的东西,都以字母'm'开头。例如,mVisible,mRunning,mStarted,但我不能为我的生活找出如何访问它们。
我想知道在Java和Kotlin中这是否可行。我附上了一个我正在谈论的屏幕截图:)
谢谢, 伊恩
答案 0 :(得分:0)
我想我已经解决了这个问题。我已宣布扩展功能:
fun Chronometer.isRunning(): Boolean {
val f = this::class.java.getDeclaredField("mRunning")
f.isAccessible=true // make it readable
return f.get(this) as Boolean
}
然后我可以使用myChronometer.isRunning()
读取mRunning的值欢迎提出改进建议。 :)