android - 设置 Android 搜索栏的最小值

标签 android

private static int INCREMENT_BY = 10;
private static int MAX = 1000;
private static int MIN = 0;
SeekBar seekbar_min, seekbar_max;
private int max = 0, min = 0;


 seekbar_min.setProgress(MIN);
    seekbar_min.incrementProgressBy(INCREMENT_BY);
    seekbar_min.setMax(MAX);
    seekbar_min.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            progress = progress / INCREMENT_BY;
            progress = progress * INCREMENT_BY;
            if (progress < 100) {
                min = progress * 10;
            } else if (progress < 300) {
                min = progress * 50;
            } else if (progress < 900) {
                min = progress * 100;
            } else {
                min = progress * MAX;
            }
            tv_price_min.setText(String.valueOf(min));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            if (seekBar.getProgress() != MIN || seekBar.getProgress() != MAX){
                if (seekBar.getProgress() < 100) {
                    max = seekBar.getProgress() + 10;
                } else if (seekBar.getProgress() < 300) {
                    max = seekBar.getProgress() + 50;
                } else if (seekBar.getProgress() < 900) {
                    max = seekBar.getProgress() + 100;
                } else {
                    max = seekBar.getProgress() + MAX;
                }
                seekbar_max.setProgress(max);
            }
        }
    });


    seekbar_max.incrementProgressBy(INCREMENT_BY);
    seekbar_max.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            progress = progress / INCREMENT_BY;
            progress = progress * INCREMENT_BY;
            if (progress < 100) {
                max = progress * 10;
            } else if (progress < 300) {
                max = progress * 50;
            } else if (progress < 900) {
                max = progress * 100;
            } else {
                max = progress * MAX;
            }
            tv_price_max.setText(String.valueOf(max));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        }
    });

搜索栏用于最高价格,必须具有最小值,即最小搜索栏当前值。我可以成功地做到这一点,但问题是,最大搜索栏允许将最小值更改为 0,这是我不想要的。

最佳答案

Seekbar 没有 setMin 函数。默认最小值为零。如果您想为 Seekbar 设置最小值,那么您有两个选择:

  • 通过一些计算将零值转换为最小值。
  • ProgressChange回调不允许值超出最小值,如下代码 fragment :
if (seekbar.getProgress() < MIN_VALUE) {
    seekbar.setProgress(MIN_VALUE);
}

关于android - 设置 Android 搜索栏的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587097/

相关文章:

java - 改变 Activity

java - getStringArrayListExtra 给我一个空值,但我有值

android - 我如何在 android 的 surfaceview 上绘制字节数组?

java - Android:无法实例化应用程序错误

java - 如何将 AIDE 项目导入 IntelliJ?

java - @Override 在 Eclipse 中的私有(private)内部类声明中不被接受为有效?

android - Android 上的 QMediaPlayer

android - 该项目不是基于 Gradle 的项目。如何从根目录打开项目?

android - Android Studio 更新后 Gradle 项目刷新失败

java - 在android中创建一个内部文件夹