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 に答える
0

私はあなたの状況について知りました。EditTextに1 EditText&1 SeekBar&onのテキスト変更があり、SeekBarの現在の選択位置を設定します。

したがって、これを実現するには、onTextChangedListeneronを使用し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-tagに以下のコードを追加してください

android:max="100"

私が理解できることを願っています。

ありがとう。

于 2013-02-12T10:21:36.187 に答える