I use Ermodo Range Bar , and the fact is that I need to display the minimum value and the maximum value in hours and minutes ... That is, the type of this enter image description here .

The code itself:

public class FilterActivity extends Activity { private RangeBar rangebar; final int SMALLEST_HOUR_FRACTION = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.filter_layout); final TextView mDepartMin = (TextView)findViewById(R.id.tvDepartMin); final TextView mDepartMax = (TextView)findViewById(R.id.tvDepartMax); rangebar = (RangeBar) findViewById(R.id.rangebar1); rangebar.setTickCount(25 * SMALLEST_HOUR_FRACTION); rangebar.setTickHeight(0); rangebar.setThumbRadius(8); rangebar.setConnectingLineWeight(3); mDepartMin.setText("" + (rangebar.getLeftIndex() / SMALLEST_HOUR_FRACTION) + ":" + SMALLEST_HOUR_FRACTION * (rangebar.getLeftIndex() % SMALLEST_HOUR_FRACTION)); mDepartMax.setText("" + (rangebar.getRightIndex() / SMALLEST_HOUR_FRACTION) + ":" + SMALLEST_HOUR_FRACTION * (rangebar.getRightIndex() % SMALLEST_HOUR_FRACTION)); rangebar.setOnRangeBarChangeListener(new RangeBar.OnRangeBarChangeListener() { @Override public void onIndexChangeListener(RangeBar rangeBar, int leftThumbIndex, int rightThumbIndex) { int minHour = leftThumbIndex / SMALLEST_HOUR_FRACTION; int minMinute = SMALLEST_HOUR_FRACTION * (leftThumbIndex % SMALLEST_HOUR_FRACTION); int maxHour = rightThumbIndex / SMALLEST_HOUR_FRACTION; int maxMinute = SMALLEST_HOUR_FRACTION * (rightThumbIndex % SMALLEST_HOUR_FRACTION); mDepartMin.setText(minHour + ":" + minMinute); mDepartMax.setText(maxHour + ":" + maxMinute); } }); } } 

Now it looks like this:

enter image description here

Please tell me how to change the format H: M to HH: MM?

  • Since you are working with time, then apparently you need to work with the Date type (and convert it to the string of the desired type using SimpleDateFormat before output), and not with the int type. - pavlofff
  • that is, do you mean convert int to Date ?? - DevOma
  • In general, since this time, it should initially be in Date , how are you going to work with time and dates, using the type int - pavlofff
  • I did not think how to change now please tell me! - DevOma
  • Well here in two words you will not prompt. Learn how to work with the Date class, or even more conveniently, with the Calendar class β€” extract hours, minutes from it to specify values ​​in the RangeBar , convert the date to the string of the desired type, and so on. and forward. Here's a look to start - pavlofff

1 answer 1

 mDepartMin.setText(getFormattedDate(minHour,minMinute)); mDepartMax.setText(getFormattedDate(maxHour,maxMinute)); public static String getFormattedDate(int hour, int minute) { Calendar cale = Calendar.getInstance(); cale.set(Calendar.HOUR_OF_DAY, hour); cale.set(Calendar.MINUTE, minute); SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); return dateFormat.format(cale.getTime()); }