在范围搜索栏中更改最小值和最大值时如何调用不同的方法
How to call different methods when min and max values are changed in range seek bar
我的应用程序中有一个范围搜索栏。仅当值更改时,我才需要通过传递柱的最小值来调用一个方法,如果最大值发生更改,我还需要通过传递最大值来调用另一个方法。
到目前为止,这是我的代码。
rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
@Override
public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) {
//call this if min value is changed
mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")");
//call this if max value is changed
mywebView.loadUrl("javascript:setEnd(" + maxValue.intValue() + ")");
}
Toast.makeText(getApplicationContext(), minValue + "-" + maxValue, Toast.LENGTH_LONG).show();
}
});
问题是当只有一个值改变时,两种方法都会被调用。如何区分方法调用?
欢迎任何想法。
您可以声明一个字段变量来保存您更改的值:
int min ,max;
rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
@Override
public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) {
if(minValue.intValue!=min){
//call this if min value is changed
mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")");
min = minValue.intValue;
}
if(maxValue.intValue!=max){
//call this if max value is changed
mywebView.loadUrl("javascript:setStart(" + maxValue.intValue() + ")");
max = maxValue.intValue;
}
}
});
- 如果可以确认,可以给
min
和max
赋默认值。
我的应用程序中有一个范围搜索栏。仅当值更改时,我才需要通过传递柱的最小值来调用一个方法,如果最大值发生更改,我还需要通过传递最大值来调用另一个方法。 到目前为止,这是我的代码。
rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
@Override
public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) {
//call this if min value is changed
mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")");
//call this if max value is changed
mywebView.loadUrl("javascript:setEnd(" + maxValue.intValue() + ")");
}
Toast.makeText(getApplicationContext(), minValue + "-" + maxValue, Toast.LENGTH_LONG).show();
}
});
问题是当只有一个值改变时,两种方法都会被调用。如何区分方法调用? 欢迎任何想法。
您可以声明一个字段变量来保存您更改的值:
int min ,max;
rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() {
@Override
public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) {
if(minValue.intValue!=min){
//call this if min value is changed
mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")");
min = minValue.intValue;
}
if(maxValue.intValue!=max){
//call this if max value is changed
mywebView.loadUrl("javascript:setStart(" + maxValue.intValue() + ")");
max = maxValue.intValue;
}
}
});
- 如果可以确认,可以给
min
和max
赋默认值。