我试图将视图的背景设置为红色,以便尝试某些操作。我在活动布局中添加了一个视图,并为其指定了ID“ gradientView”。在我的Java代码中,我创建了这样的新视图:

    View gradientView = (View) findViewById(R.id.gradientView);


在onCreate中,我这样做:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clean_weather);
    gradientView.setBackgroundColor(Color.RED);


由于某种原因,它在findViewById处给了我一个Null指针异常。当我将其引用到XML视图时,我以为是“不为null”?

有人知道发生了什么吗?

谢谢。

最佳答案

您的findviewById应该在setContentView(..)之后;

例:

 super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_clean_weather);
    View gradientView = (View) findViewById(R.id.gradientView);
    gradientView.setBackgroundColor(Color.RED);


否则,gradientView将为null,并且对null引用的任何操作都将导致NullPointerException

关于java - 设置 View 的颜色时,空指针异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12716794/

10-11 09:26