OnSeekBarChangeListener

OnSeekBarChangeListener

我正在尝试使用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/

10-10 13:39