我想了解调试器是如何工作的,所以我创建了下面的示例,并在代码中下面提到的行放置了一个断点。当我运行调试器时,我希望只看到变量“a”的值 在屏幕上,但实际上什么也没有显示
为什么使用 TextView“this.mTV2”时变量“a”的值没有显示在屏幕上?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.mTV1 = (TextView) findViewById(R.id.tv1);
this.mTV2 = (TextView) findViewById(R.id.tv2);
this.mTV3 = (TextView) findViewById(R.id.tv3);
}
@Override
protected void onResume() {
super.onResume();
int a, b, c;
int x = 30;
int y = 40;
int z = 50;
a = x + y;
b = y + z;
c = x + z;
this.mTV1.setText("" + a);
this.mTV2.setText("" + b);//BREAKING POINT HERE
this.mTV3.setText("" + c);
}
最佳答案
我试着解释一下:
如果您查看下图,它显示了 android 生命周期。如您所见, Activity 在 onCreate 和 onPause 之后运行,这意味着即使您在这些方法中放置了一些断点,您也不会在屏幕上看到任何内容,因为布局尚未更新。
在调试器中,您可以看到变量的值,但看不到屏幕上的值。
没有关于调试屏幕文本的实用程序,因为调试器的实用程序是调试代码,而不是布局。
如果您仍想调试布局,唯一的方法是在一个 Action (例如单击按钮)上创建一个方法并调试该方法。
由于 UI 已经绘制完成,您将看到文本更新,但正如我之前所说,查看布局更新没有任何用处,重点是查看您停止所在行的变量的值.
希望对您有所帮助
关于android - 变量的值不通过调试器显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617470/