0

내 응용 프로그램에서 범위 검색 막대가 있습니다. 값이 변경된 경우에만 막대의 최소값을 전달하여 메서드를 호출해야하며 최대 값이 변경되면 최대 값을 전달하여 다른 메서드를 호출해야합니다. 여기 내 코드가 있습니다.범위 검색 막대에서 최소값과 최대 값을 변경할 때 다른 메서드 호출 방법

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(); 
     } 
    }); 

문제는 하나의 값만 변경되면 두 가지 방법 모두 호출된다는 것입니다. 메서드 호출을 어떻게 구별 할 수 있습니까? 모든 아이디어를 환영합니다.

답변

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의 기본 값을 할당 할 수 있습니다.