我正在尝试使用seekbar的值更新textview,并且在设置OnSeekBarChangeListener时遇到问题。我没有任何编译错误,但是每次尝试运行该应用程序时,都会得到一个空指针异常。
错误提示:
尝试在空对象引用上调用虚拟方法'void android.widget.SeekBar.setOnSeekBarChangeListener(android.widget.SeekBar $ OnSeekBarChangeListener)'
尽管浏览了StackOverflow,但我一生无法弄清原因。每个类似的问题,或者关于如何设置OnSeekBarChangeListener的教程似乎都建议我完全按照自己的意愿去做。救命!
public class MainActivity extends AppCompatActivity {
public TextView time;
public SeekBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
time = (TextView) findViewById(R.id.time);
bar = (SeekBar) findViewById(R.id.bar);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bar.setOnSeekBarChangeListener(listener);
}
private SeekBar.OnSeekBarChangeListener listener = new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
time.setText((String.valueOf(progress/100) + ":" + String.valueOf(progress % 100)));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
};}
最佳答案
我会尝试设置这些线
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
首先在onCreate方法中,然后尝试使用以下命令查找seekBar视图
bar = (SeekBar) findViewById(R.id.bar);
请让我知道它是否可以解决您的问题!
findViewById()方法将尝试查找具有指定ID的视图。但是要做到这一点,它必须知道该活动使用了哪个布局文件,以便知道在哪里搜索。这就是您使用setContentView指出的原因,这就是为什么它必须首先出现的原因。
关于java - 设置onSeekBarChangeListener会导致空对象异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34301028/