如何设置用户已选择的搜索栏值
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();
}
});
你好谁能帮帮我 如何设置搜索栏值 默认情况下,其最小值为 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();
}
});