findViewById(R.id.screen)返回null

时间:2016-05-21 11:24:37

标签: java android android-studio view seekbar

当用户拖动搜索栏时,我正在尝试更改应用的背景颜色。

我已经关注了以下链接: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

主要活动类:

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setRandomcolors();
        setbuttonclicklistener();
        seebar();
    }
OnSeekBarChangeListener()

调用

seebar()

1 个答案:

答案 0 :(得分:2)

您将someView视为null。所以它给出了空指针异常。

尝试更改,

 View someView = findViewById(R.id.screen);

 View someView = (View)findViewById(R.id.screen);

您可以发布完整的xml代码。