SeekBar внутри другого класса - PullRequest
       7

SeekBar внутри другого класса

0 голосов
/ 05 октября 2019

Я создал SeekBar, который отображает расстояние. Это расстояние используется для показа круга с определенным расстоянием в качестве его радиуса.

В моем onCreate у меня есть следующие строки:

SeekBar seekBar = findViewById(R.id.sb_radius);
seekBar.setOnSeekBarChangeListener(seekBarChangeListener);

Затем класс, в котором яиспользуйте его следующим образом:

   private void Search_Map(float dpWidth, float dpHeight, Object Lat, Object Lon) {

    SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            // updated continuously as the user slides the thumb
            tvDistance.setText( "Progress: " + progress );
            Show_Map(dpWidth, dpHeight, Lat, Lon, progress*1000);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // called when the user first touches the SeekBar
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // called after the user finishes moving the SeekBar
        }
    };
} 

Моя проблема в том, что он никогда не выполняет никаких действий, потому что я получаю сообщение об ошибке:

cannot resolve symbol seekBarChangeListener.

Как я могуиспользовать панель поиска внутри моего класса и все же заставить слушателя работать?

Спасибо

1 Ответ

0 голосов
/ 05 октября 2019

Удалить seekBar.setOnSeekBarChangeListener(seekBarChangeListener); строку из onCreate и добавить ее в конец Search_Map

class ClassName{
Seekerbar seekerbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_name);
        seekBar = findViewById(R.id.sb_radius);

}
private void Search_Map(float dpWidth, float dpHeight, Object Lat, Object Lon) {

    SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            // updated continuously as the user slides the thumb
            tvDistance.setText( "Progress: " + progress );
            Show_Map(dpWidth, dpHeight, Lat, Lon, progress*1000);
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // called when the user first touches the SeekBar
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // called after the user finishes moving the SeekBar
        }
    };
    seekBar.setOnSeekBarChangeListener(seekBarChangeListener);

} 
}
...