java - 根据 EditText 值更改 SeekBar 进度

标签 java android android-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:

<SeekBar
            android:id="@+id/syst_bar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:progress="0"
            android:max="120"
            android:progressDrawable="@drawable/progress_bar"
            android:secondaryProgress="0"
            android:thumb="@drawable/thumb_state" />

我为每个值添加 70,因为 SeekBar 从 0 开始,但我希望它从 70 开始。

使用上面的代码后,如下所示:

enter image description here

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) {}
        });

关于java - 根据 EditText 值更改 SeekBar 进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20802397/

相关文章:

java - EJB-GWT。通知 GWT(javaScript) 客户端发生的一些事件

java - 即使递归调用后也不会发生递归

java - 使用未包装的 oracle.jdbc.driver.T4CConnection 的 HikariCP 连接泄漏

Java JsonParseException : Unexpected character Reading JSON from Oracle 11g

Android:有效地滚动 Canvas 的内容?

iphone - 跨平台手机开发环境

android - 如何创建带有子菜单的下拉菜单?

android - StackOverflowError - 冗余调用 onTextChanged

android - EditText.getText() 是否曾经返回 null?

java - 将字符串从 EditText 转换为整数会导致应用程序在启动前停止工作