0

私のアプリケーションに範囲シークバーがあります。値が変更された場合に限りbarの最小値を渡してメソッドを呼び出す必要があります。また、最大値が変更された場合にmax値を渡して別のメソッドを呼び出す必要があります。 ここまでは私のコードです。範囲のシークバーで最小値と最大値が変更されたときに、別のメソッドを呼び出す方法

rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() { 
     @Override 
     public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) { 
       //call this if min value is changed 
       mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")"); 

       //call this if max value is changed 
       mywebView.loadUrl("javascript:setEnd(" + maxValue.intValue() + ")"); 
      } 

      Toast.makeText(getApplicationContext(), minValue + "-" + maxValue, Toast.LENGTH_LONG).show(); 
     } 
    }); 

問題は、値が1つだけ変更され、両方のメソッドが呼び出される場合です。どのようにしてメソッドコールを区別できますか? アイデアは大歓迎です。

答えて

0

あなたが変更した値を保存するためにフィールド変数を宣言することができます:あなたが確認できた場合

int min ,max; 
rangeSeekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() { 
     @Override 
     public void onRangeSeekBarValuesChanged(RangeSeekBar<?> bar, Integer minValue, Integer maxValue) { 
       if(minValue.intValue!=min){ 
        //call this if min value is changed 
        mywebView.loadUrl("javascript:setStart(" + minValue.intValue() + ")"); 
        min = minValue.intValue; 
       } 

       if(maxValue.intValue!=max){ 
        //call this if max value is changed 
        mywebView.loadUrl("javascript:setStart(" + maxValue.intValue() + ")"); 
        max = maxValue.intValue; 
       }  

     } 

}); 
  • あなたはminmaxのデフォルト値を割り当てることができます。
関連する問題