1
  I want to change the seekbar progress position by changing the value in EditText dynamically. please help me out from this issue .

         <EditText  
                android:id="@+id/editText1"   
                android:layout_width="120dp"   
                android:layout_height="wrap_content" />    

     <SeekBar  
     android:id="@+id/seekBar1"  
     android:layout_width="match_parent"  
     android:layout_height="wrap_content"    
     android:max="4990000"    
     android:progress="10"  />  

这是java代码

    seekbar1 = (SeekBar) findViewById(R.id.seekBar1);
    seekbar1.setProgress(30);
    seekbar1.setOnSeekBarChangeListener( new OnSeekBarChangeListener()
    {
        public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
        {
            spinnervalue=(EditText)findViewById(R.id.editText1);

                spinnervalue.setText(""+Integer.toString(progress));

            //  Notify that the progress level has changed.  

            if(txtAmount.getText().length() > 0
                    && txtYears.getText().length() > 0
                    && txtRate.getText().length() > 0)
            {
                calculate();
            }

        }

    });

因此,通过根据输入的值更改编辑文本中的值,必须将搜索栏移动到特定值。

4

3 回答 3

4

试一试 。setProgress(Value)_ SeekBar它应该在您的 Seekbar 支持的值范围内。

于 2013-02-12T10:16:16.013 回答
1

我认为您对此有两种解决方案:

  1. 在表单上创建一个按钮并android:onClick为此使用 in xml。在它的事件中,您可以使用设置 Seekbar 的进度seekbar1.setProgress(progress);
  2. 添加一个 Timer 并定期查看值是否已更改:

    定时器 timer = new Timer();

        timer.schedule(new TimerTask() {
          @Override
          public void run() {
              runOnUiThread(new Runnable() {
                  @Override
                  public void run() {
                      seekbar1.setProgress(progress);
                  }
              }
          }
        }, 1000, 1000);
    

希望这可以帮助。

于 2013-02-12T10:34:45.890 回答
0

关于你的情况,我已经了解了很多。您在 EditText 中有 1 EditText& 1 SeekBar& on 文本更改要设置 SeekBar 当前选定位置。

因此,要实现这一点,您需要使用onTextChangedListeneronEditText并在其中执行以下操作。

首先定义 spinnervalue=(EditText)findViewById(R.id.editText1); spinnervalue.setOnTextChangeListener(this)onCreate()

现在使用以下代码onTextChanged

String value = spinnervalue.getText().toString();
try{
    int progress = Integer.parseInt(value);
    if (progress >= 0 && progress <= 100)
        {
          Log.e("", "Value set:" + progress);
          seekbar1.setProgress(progress);
        }
    }
    catch(Exception e)
    {
        Log.e("", "Value set:" + value);
        e.printStackTrace();
    }    
}

还将以下代码添加到布局中的seekbar-tag

android:max="100"

希望我可以理解。

谢谢。

于 2013-02-12T10:21:36.187 回答