我无法让OnSeekBarChangeListener在Android代码

时间:2018-02-20 19:15:38

标签: java android

我正在尝试在我的Java / Android代码中使用OOP,但我不明白为什么OnSeekBarChangeListener在我的新课程中不起作用。
是否禁止使用OnSeekBarChangeListener外部主要活动?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mp = new MediaPlayer();
    timescroller = (SeekBar) findViewById(R.id.seekBar);
    TimeScroller Tm = new TimeScroller();

    Tm.mp = mp;
    Tm.ts = timescroller;
    Tm.mTimeScroller();

    timescroller.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
            if(b){
                mp.seekTo(i);
            }
        }
            @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            mp.setVolume(0,0);
        }
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            mp.setVolume(1,1);
        }
    });
}

这是我的班级

package com.phillipvm.gridlayout;

import android.media.MediaPlayer;
import android.widget.SeekBar;

public class TimeScroller {
    MediaPlayer mp;
    SeekBar ts;
    public void mTimeScroller(MediaPlayer _mp,SeekBar _ts){
        mp =_mp;
        ts = _ts;
        ts.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                if(b){
                    mp.seekTo(i);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                mp.setVolume(0,0);
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                mp.setVolume(1,1);
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

我看不到您正在使用该课程的代码! 你正在调用Tm.mTimeScroller();但是在你的班级中,该方法需要2个参数!