当用户拖动搜索栏时,我试图更改应用程序的背景颜色。
我引用了以下链接:Set Background color programmatically
我在 OnSeekBarChangeListener()
中有以下代码:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
View someView = findViewById(R.id.screen);
View root = someView.getRootView();
root.setBackgroundColor(Color.argb(255, r[progress], g[progress], b[progress]));
}
它会导致以下崩溃:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.getRootView()' on a null object reference
主要 Activity 类别:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRandomcolors();
setbuttonclicklistener();
seebar();
}
OnSeekBarChangeListener()
是从 seebar()
最佳答案
您得到的 someView 为 null。所以它给出了空指针异常。
尝试改变,
View someView = findViewById(R.id.screen);
至
View someView = (View)findViewById(R.id.screen);
您可以发布完整的 xml 代码吗?
关于java - findViewById(R.id.screen) 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37362274/