读取参数字段值

时间:2017-11-05 13:26:32

标签: android

这可能是最愚蠢的noob问题,但我无法在任何地方找到答案 - 也许是因为我的术语不对,可能是因为它不可能。

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

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

例如,如果我在计时器启动后设置断点,在变量列表中(或在评估计时器时),我可以看到一堆有用的东西,都以字母'm'开头。例如,mVisible,mRunning,mStarted,但我不能为我的生活找出如何访问它们。

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

谢谢, 伊恩

What I'm trying to say

1 个答案:

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

欢迎提出改进建议。 :)