Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - TimePicker minutes to 15

Tags:

android

Can I control the Android TimePicker view to just show the minutes to 15 minutes interval?

Meaning if it's 12:28 now, show 12:30 and clicking the + and - button will increment and decrement by 15?

like image 721
teepusink Avatar asked Apr 05 '10 18:04

teepusink


1 Answers

Create a xml file and name it activity_time_picker.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent" >   <TimePicker         android:id="@+id/timePicker1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_below="@+id/layoutHourMinute"         android:layout_centerInParent="true"          />  </RelativeLayout> 

now create activity class like this

import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List;  import android.annotation.SuppressLint;  import android.content.pm.ActivityInfo; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.NumberPicker; import android.widget.TimePicker;  public class TimePickerActivity extends Activity {       TimePicker timePicker;     private int TIME_PICKER_INTERVAL = 15;      NumberPicker minutePicker;      List<String> displayedValues;      @Override     protected void onCreate(Bundle savedInstanceState) {                  super.onCreate(savedInstanceState);         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);         setContentView(R.layout.activity_time_picker);         super.onCreate(savedInstanceState);         timePicker = (TimePicker)findViewById(R.id.timePicker1);          timePicker.setIs24HourView(true);         timePicker.setCurrentHour(0);         timePicker.setCurrentMinute(0);          setTimePickerInterval(timePicker);     } @SuppressLint("NewApi")     private void setTimePickerInterval(TimePicker timePicker) {          try {                 Class<?> classForid = Class.forName("com.android.internal.R$id");                // Field timePickerField = classForid.getField("timePicker");                    Field field = classForid.getField("minute");                 minutePicker = (NumberPicker) timePicker                         .findViewById(field.getInt(null));                  minutePicker.setMinValue(0);                 minutePicker.setMaxValue(3);                 displayedValues = new ArrayList<String>();                 for (int i = 0; i < 60; i += TIME_PICKER_INTERVAL) {                     displayedValues.add(String.format("%02d", i));                 }               //  for (int i = 0; i < 60; i += TIME_PICKER_INTERVAL) {               //      displayedValues.add(String.format("%02d", i));               //  }                 minutePicker.setDisplayedValues(displayedValues                         .toArray(new String[0]));                minutePicker.setWrapSelectorWheel(true);             } catch (Exception e) {                 e.printStackTrace();             }     } } 
like image 97
Ali Avatar answered Sep 21 '22 17:09

Ali