java试图在安卓 seekbar上实现最大值的动态增加
我正在实现一个seekbar,它允许用户设置价格。 我希望seekbar以最大值100开始,然后如果用户将seekbar一直移动到100,最大值将上升到250,如果用户将seekbar一直移动到250,它将上升到500,如果用户将seekbar一直移动到500,最后在500+处停止
我写的代码大部分都是有效的。问题是,当用户将seekbar移动到最大值时,由于用户将手指放在那里,安卓认为它一直处于最大值,因此它会立即增加到500+,因此我需要找到一种方法,在增加最大值后禁用触摸,直到用户抬起手指
所以。。。我想从seekbar中断用户的触摸,这样它就可以等到下一个新的触摸事件,这样就不会发生这种情况。如果有人知道这样做的方法,请尽快让我知道!!谢谢
我已经尝试过的是在seekbar达到最大值时禁用并重新启用它,以期打破触摸,但这不起作用
我的代码如下:
private class PriceChangeListener implements SeekBar.OnSeekBarChangeListener{
private TextView priceView = (TextView) findViewById(R.id.input_price_label);
private TextView maxPriceView = (TextView) findViewById(R.id.input_price_max_label);
private boolean increaseMax;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
String textToSet = "About how much will it cost? $" + String.valueOf(progress);
if(progress < 500)
priceView.setText(textToSet);
else
priceView.setText(textToSet + "+");
if(progress == seekBar.getMax() && increaseMax) {
seekBar.setEnabled(false);
switch (progress) {
case 100:
seekBar.setMax(250);
increaseMax = false;
maxPriceView.setText("$" + String.valueOf(seekBar.getMax()));
break;
case 250:
seekBar.setMax(500);
increaseMax = false;
maxPriceView.setText("$" + String.valueOf(seekBar.getMax()));
break;
case 500:
maxPriceView.setText("$500+");
break;
}
seekBar.setEnabled(true);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
increaseMax = true;
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// Do nothing
}
}
# 1 楼答案
进一步改进我的评论,试一试