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();
}
}
});
所以通过根据输入的值更改edittext中的值,必须将搜索栏移动到特定值。
答案 0 :(得分:4)
尝试
setProgress(Value)
的{{1}}。
它应该在您的Seekbar支持的值范围内。
答案 1 :(得分:1)
我认为你有两个解决方案:
android:onClick
。在其内部活动中,您可以使用seekbar1.setProgress(progress);
设置Seekbar的进度。添加计时器并定期查看值是否已更改:
定时器计时器=新的计时器();
timer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { seekbar1.setProgress(progress); } } } }, 1000, 1000);
希望这有帮助。
答案 2 :(得分:0)
我尽可能多地了解你的情况。你有1 EditText
&amp; 1 SeekBar
&amp;在EditText中更改文本时,您要设置SeekBar当前选定的位置。
为实现此目的,您需要在onTextChangedListener
上使用EditText
并在其中执行以下操作。
首先定义
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-tagandroid:max="100"
希望我能理解。
感谢。