读取参数字段值

这可能是noobiest noob问题,但我无法find答案的任何地方 – 也许是因为我有我的术语错了,也许是因为这是不可能的。

我想要做的是确定Android中的计时器小部件是否正在运行,但更常见的问题是:

如何以编程方式读取IDE /调试器中可以看到的字段值?

例如,如果我在启动计时器后设置断点,则在variables列表中(或者在计算天文台时),我可以看到所有以字母“m”开头的有用信息。 例如,mVisible,mRunning,mStarted,但我不能为我的生活找出如何访问它们。

我想知道在Java和Kotlin中这是否可能。 我附上了一个我正在谈论的屏幕抓图:)

谢谢,Iain

我想说什么

我想我已经做到了这一点。 我宣布了一个扩展函数:

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的值

欢迎提出改进建议。 🙂