我试图将视图的背景设置为红色,以便尝试某些操作。我在活动布局中添加了一个视图,并为其指定了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/