Android Java中为RangeSlider添加OnChangeListener的报错问题咨询
RangeSlider OnChangeListener 监听器报错解决方案
报错原因
- 你当前实现的
onValueChange方法第一个参数类型为Slider,不符合RangeSlider.OnChangeListener的泛型约束,RangeSlider对应的监听器要求方法第一个入参必须是RangeSlider类型,方法签名不匹配导致编译器判定未实现抽象方法,触发第一条报错。 - 由于方法签名和父类要求不一致,
@Override注解无法匹配到父类的对应方法,触发第二条覆盖失败报错。
修正代码
首先确认导入的依赖包正确:
import com.google.android.material.slider.RangeSlider; import androidx.annotation.NonNull; import java.util.List;
修正后的监听器代码如下:
intensitySlider.addOnChangeListener(new RangeSlider.OnChangeListener() { @Override public void onValueChange(@NonNull RangeSlider slider, float value, boolean fromUser) { List<Float> b = slider.getValues(); // 补充你的业务逻辑即可,b.get(0)为左滑块值,b.get(1)为右滑块值 } });
如果你的项目已开启Java 8及以上版本支持,可使用lambda简化写法:
intensitySlider.addOnChangeListener((slider, value, fromUser) -> { List<Float> b = slider.getValues(); // 业务逻辑 });
内容的提问来源于stack exchange,提问作者K.O.I.
相关产品推荐
相关产品推荐

