我创建了一个显示距离的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
}
};
}
我的问题是它从不执行任何操作,因为我的onCreate
说错了:
cannot resolve symbol seekBarChangeListener.
我如何在班级内部使用搜寻栏,但仍使侦听器正常工作?
谢谢
从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);
}
}