【发布时间】:2016-09-18 15:20:05
【问题描述】:
当用户拖动搜索栏时,我正在尝试更改应用的背景颜色。
我已经推荐了以下链接: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() 调用的
【问题讨论】:
-
您的屏幕布局是否相同?
-
您没有ID为
screen的视图 -
@KDeogharkar 我怎么知道?
-
将 ID 添加到您的布局 (activity_main)。
android:id="@+id/screen" -
您尝试过 someView=activity.getCurrentFocus().getRootView() 吗?
标签: java android android-studio view seekbar