根据EditText值更改SeekBar进度
我试图根据在EditText
输入的数字来更改SeekBar
的进度但由于某种原因, EditText
值达到最大值,我无法在SeekBar
滑动拇指。
我想要实现的目标:如果在EditText
输入的值在70到190之间(包括两个数字),则将SeekBar
的进度更改为该值。
部分Java代码:
etOne = (EditText) findViewById(R.id.etSyst); etOne.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { String filtered_str = s.toString(); if (Integer.parseInt(filtered_str) >= 70 && Integer.parseInt(filtered_str) <= 190) { sbSyst.setProgress(Integer.parseInt(filtered_str)); } } public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) {} });
部分XML:
我为每个值添加70,因为SeekBar
从0开始,但我希望它从70开始。
使用上面的代码后,它是这样的:
SeekBar
处于最大数量, EditText
也处于最大值。
etOne = (EditText) findViewById(R.id.etSyst); etOne.addTextChangedListener(new TextWatcher() { public void afterTextChanged(Editable s) { int i = Integer.parseInt(s.toString()); if (i >= 70 && i <= 190) { sbSyst.setProgress( i - 70); // This ensures 0-120 value for seekbar } } public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) {} });