0

私は seekBar を使用して、ユーザーによる値の増減を渡します... 私は barValue=50 の初期値を入れます。ユーザーが現在の値よりも小さいシークバーをドラッグすると、a、b が 0.00001 減少します。

私が直面している問題。IF条件を一度だけ実行します。seekBar が更新された後.. a と b に変更はありません。

  public static double a,b;
     public static int barValue;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            // Define the criteria how to select the locatioin provider -> use
            // default
            Criteria criteria = new Criteria();
            provider = locationManager.getBestProvider(criteria, false);
            Location location = locationManager.getLastKnownLocation(provider);

            a= location.getLatitude(); 
            b= location.getLongitude(); 

             bar = (SeekBar)findViewById(R.id.seekBar1); // make seekbar object
             bar.setOnSeekBarChangeListener(this); // set seekbar listener.

             barValue = 50;
             bar.setProgress(barValue);


    }


public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        // TODO Auto-generated method stub
        if (progress > barValue)
        {
            a += seekBar.getProgress()/10000; 
            b += seekBar.getProgress()/10000;

            getSensorManager().enableMockLocation(a, b);
        }
        else if(progress < barValue)
        {
            a -= seekBar.getProgress()/10000;
            b -= seekBar.getProgress()/10000;

            getSensorManager().enableMockLocation(a, b);
        }

    }


    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        seekBar.setSecondaryProgress(seekBar.getProgress());
        barValue = seekBar.getProgress();
    }
4

0 に答える 0