变量值不通过调试器显示

时间:2016-09-21 13:07:59

标签: android debugging

我正在尝试学习调试器是如何工作的,所以我创建了下面的示例,并在代码中的下面提到的行中放置了一个断点。当我运行调试器时,我希望只看到varibale“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);
}

3 个答案:

答案 0 :(得分:1)

您在onResume期间停止了该设备。此时实际上并未绘制任何内容,而是您已设置文本值。完成此功能后,将重新绘制UI,您将看到更改。这是大多数UI开发代码所做的优化。

答案 1 :(得分:1)

我试着解释一下:

如果你看一下下面的图片,它会显示android生命周期。如您所见,活动在onCreate和onPause之后运行,这意味着即使您在这些方法中放置了一些断点,您也不会在屏幕上看到任何内容,因为布局尚未更新。

在调试器中,您可以看到变量的值,但不能看到屏幕上的值。

enter image description here

调试屏幕文本没有实用程序,因为调试器的实用程序是调试代码,而不是布局。

如果您仍想调试布局,唯一的方法是在操作上创建方法(例如单击按钮)并调试此方法。

由于UI已经被绘制,你会看到文本更新,但正如我之前所说,看到布局更新没有任何实用工具,关键是看到哪些值是你要停在的行的变量

希望有所帮助

答案 2 :(得分:0)

当活动生命周期方法完成时,所有视图都将在screene上可见,即onCreate,onStart然后onResume。当您在onResume内部进行调试时,您的设备已停止。在onResume完成后,如果已经绘制了视图,则会重新绘制视图,并且您将能够看到结果。

相关问题