我想做的就是这个!我有一个文本视图,其中包含用户插入的总预算,另一个文本视图包含费用总和。有没有办法让 seekbar 的最大值得到 textview1 的值并根据 textview2 的总值增加?
如果我不应该为此使用搜索栏,请指出我正确的方向!
提前致谢!
使用可编辑的 Integer.parseInt 将 TextChangedListener 添加到您的 EditText 以设置您的 SeekBar 的 setMax(int)。为了设置间隔,您希望在从第二个 EditText 获取用户寻求的量后将其四舍五入到您最近的间隔值...
EditText etMaxValue, etInterval;
SeekBar seekBar;
int interval = 1;
public IntervalSeekBar() {
//Initialize your EditText and SeekBar objects...
etMaxValue.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable text) {
seekBar.setMax(Integer.parseInt(text.toString()));
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
});
etInterval.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable text) {
interval = Integer.parseInt(text.toString());
if (interval < 1) { interval = 1; }
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
});
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar sb, int value, boolean userInitiated) {
value = ((int) Math.round(value/interval)) * interval;
seekBar.setProgress(value);
}
public void onStartTrackingTouch(SeekBar arg0) { }
public void onStopTrackingTouch(SeekBar arg0) {}
});
}