gpt4 book ai didi

java - 如何设置搜索栏的最小值和最大值

转载 作者:IT老高 更新时间:2023-10-28 20:56:23 25 4
gpt4 key购买 nike

我有一个搜索栏,并尝试将第一个的值设置为 60 到 180,将第二个的值设置为 40 到 190,步长为 1。

sb1 = (SeekBar) findViewById(R.id.progresss);
sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
//int inVal = Integer.parseInt(String.valueOf(seekBar.getProgress()));
//inVal =+ 70;
//Toast.makeText(getApplicationContext(), String.valueOf(inVal),Toast.LENGTH_LONG).show();
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}

@Override
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
progress =+ 70;
Toast.makeText(getApplicationContext(), String.valueOf(progress),Toast.LENGTH_LONG).show();

}
});

不工作。知道如何解决吗?

最佳答案

您无法设置 SeekBar 的 min 值(始终为 0),也无法设置 SeekBar 的 step 值(始终为 1)。

要将值从 60 设置为 180,步长为 1:

int step = 1;
int max = 180;
int min = 60;

// Ex :
// If you want values from 3 to 5 with a step of 0.1 (3, 3.1, 3.2, ..., 5)
// this means that you have 21 possible values in the seekbar.
// So the range of the seek bar will be [0 ; (5-3)/0.1 = 20].
seekbar.setMax( (max - min) / step );


seekbar.setOnSeekBarChangeListener(
new OnSeekBarChangeListener()
{
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {}

@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
// Ex :
// And finally when you want to retrieve the value in the range you
// wanted in the first place -> [3-5]
//
// if progress = 13 -> value = 3 + (13 * 0.1) = 4.3
double value = min + (progress * step);

}
}
);

我在代码中放了另一个例子,以便你理解数学。

关于java - 如何设置搜索栏的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com