2016-11-08 4 views
-1

Моя проблема заключается в том, что мне нужно использовать TimePicker с интервалом в 5 минут.Android TimePicker с интервалом 5 минут

Все примеры, которые я искал здесь

Android - TimePicker minutes to 15

и здесь

How do i change the Android TimePicker minute intervals?

для меня не работает.

Если возможно, я хотел бы увидеть полный рабочий пример.

Этот код работает, но я не знаю, как пройти время здесь, чтобы установить, и не знаю, как получить время

import android.content.Context; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.AttributeSet; 
import android.view.View; 
import android.widget.NumberPicker; 
import android.widget.TextView; 
import android.widget.TimePicker; 
import java.lang.reflect.Field; 
import java.util.ArrayList; 
import java.util.Calendar; 
import java.util.Date; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 

    TimePicker pickStartTime; 
    TextView textwiew; 
    private int TIME_PICKER_INTERVAL = 5; 
    NumberPicker minutePicker; 
    List<String> displayedValues; 


    final Calendar cal = Calendar.getInstance(); 

    private int myHourS = cal.get(Calendar.HOUR_OF_DAY); 
    private int myMinuteS = cal.get(Calendar.MINUTE); 

    int nextMinute = 0; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     textwiew =(TextView)findViewById(R.id.text1); 

     pickStartTime = (TimePicker)findViewById(R.id.timePicker1); 
     pickStartTime.setIs24HourView(true); 

     setTimePickerInterval(pickStartTime); 
    } 


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

    public void onClick (View v) { 
     int Minut = pickStartTime.getCurrentMinute(); 
     textwiew.setText(Minut); 
    } 


} 

ответ

0

не знают, как получить время

Использование OnTimeChangedListener

pickStartTime = (TimePicker)findViewById(R.id.timePicker1); 
pickStartTime.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { 

    public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { 
     Log.d("Time", "You picked " 
       + String.valueOf(view.getCurrentHour()) + ":" 
       + String.valueOf(view.getCurrentMinute())); 
    } 

}); 
+0

Спасибо, это работает для меня. Можете ли вы рассказать мне, как установить текущее время? –

+0

setHour и setMinute ... Из [документации] (https://developer.android.com/reference/android/widget/TimePicker.html) –

Смежные вопросы