如何设置用户已选择的搜索栏值

How to set seekbar value which user already selected

你好谁能帮帮我 如何设置搜索栏值 默认情况下,其最小值为 0,最大值为 1000

现在如果用户设置最小值 20 和最大值 400 并应用过滤器 用户再次需要将过滤器值从 20 更改为 30,将 400 更改为 450 但在我的例子中,过滤器范围,搜索栏值再次从 0 到 1000

如何设置用户选择的值。 请找到附件 [![第一个默认过滤器][1]][1] [![用户选择值的第二个过滤器][2]][2] 这是我的代码。

final RangeSeekBar rangeSeekbar = dialog.findViewById(R.id.rangeSeekBar);
       rangeSeekbar.setMinThumbValue(prefs.getInt("minValue", 10));
                rangeSeekbar.setMaxThumbValue(prefs.getInt("maxValue", 10000));
 rangeSeekbar.setSeekBarChangeListener(new
                                                              RangeSeekBar.SeekBarChangeListener() {
                                                                  @Override
                                                                  public void onStartedSeeking() {

                                                                  }

                                                                  @Override
                                                                  public void onStoppedSeeking() {
                                                                      editor.putInt("minValue", rangeSeekbar.getMinThumbValue());
                                                                      editor.putInt("maxValue", rangeSeekbar.getMaxThumbValue());
                                                                      editor.apply();
                                                                  }

                                                                  @Override
                                                                  public void onValueChanged(int i, int i1) {
                                                                      price_min.setText(String.valueOf(i));
                                                                      price_max.setText(String.valueOf(i1));
                                                                  }
                                                              });

xml 代码

 <com.innovattic.rangeseekbar.RangeSeekBar
                        android:id="@+id/rangeSeekBar"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        app:rsb_maxThumbDrawable="@drawable/thumb_circle"
                        app:rsb_maxThumbOffsetHorizontal="2dp"
                        app:rsb_minRange="10"
                        app:rsb_max="10000"
                        app:rsb_minThumbDrawable="@drawable/thumb_circle"
                        app:rsb_minThumbOffsetHorizontal="-2dp"
                        app:rsb_trackColor="#888"
                        app:rsb_trackSelectedColor="@color/colorPrimaryDark"
                        app:rsb_trackSelectedThickness="4dp"
                        app:rsb_trackThickness="2dp" />

对于复选框代码, 它工作正常但我需要如果已经选中复选框设置为 true

holder.checkbox.setChecked(datum.isSelected());
            holder.checkbox.setTag(moviesList.get(position));

            holder.checkbox.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String data = "";
                    ResultGetCategory fruits1 = (ResultGetCategory)holder.checkbox.getTag();

                    fruits1.setSelected(holder.checkbox.isChecked());

                    moviesList.get(position).setSelected(holder.checkbox.isChecked());

                    for (int j=0; j<moviesList.size();j++){

                        if (moviesList.get(j).isSelected() == true){
                            data = data + "\n" + moviesList.get(j).getName().toString();
                        }
                    }
                    Toast.makeText(getContext(), "Selected Fruits : \n " + data, Toast.LENGTH_SHORT).show();
                }
            });

您可以将您的值保存在 sharedpreferences 中,并在由 class 创建时在搜索栏中设置它们(如果不为空),如下所示:

range_seek_bar.setMin(*/value from sharedprefs/*);
range_seek_bar.setMax(*/value from sharedprefs/*);

通知:

范围搜索栏的每个库都有不同的方法,也许上面的代码不适合您,它只是一个示例,可以为您指明方向。

更新:

这个库的总代码:

  import com.innovattic.rangeseekbar.RangeSeekBar;

处理导入:

    RangeSeekBar rangeSeekbar;
    rangeSeekbar = findViewById(R.id.rangeSeekbar2);
    //Context context;
    SharedPreferences prefs = 
         this.getSharedPreferences("user",MODE_PRIVATE);
    final SharedPreferences.Editor editor = prefs.edit();



    rangeSeekbar.setMinThumbValue(prefs.getInt("minValue",1));
    rangeSeekbar.setMaxThumbValue(prefs.getInt("maxValue",100));

    rangeSeekbar.setSeekBarChangeListener(new 
            RangeSeekBar.SeekBarChangeListener() {
        @Override
        public void onStartedSeeking() {

        }

        @Override
        public void onStoppedSeeking() {
            editor.putInt("minValue",rangeSeekbar.getMinThumbValue());
            editor.putInt("maxValue",rangeSeekbar.getMaxThumbValue());
            editor.apply();
        }

        @Override
        public void onValueChanged(int i, int i1) {
            //price_min.setText(String.valueOf(i));
            //price_max.setText(String.valueOf(i1));
        }
    });

这是我使用和工作过的库的 link: Library for range bar

更多帮助:

    <com.innovattic.rangeseekbar.RangeSeekBar
    android:id="@+id/rangeSeekbar2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:rsb_minRange="0"
    app:rsb_max="400"
    android:background="@color/colorAccent" />

第二个问题的答案:

       checkBox.setChecked(prefs.getBoolean("checkbox",false));
       checkBox.setOnCheckedChangeListener(new 
                 CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean 
                                    isChecked) {
            //add your code here when set checked changed
            editor.putBoolean("checkbox",isChecked);
            editor.apply();
        }
    });