2017-01-18 2 views
0

Я пишу приложение, которое получает часовое/минутное значение от TimePicker, отображает их на экране и устанавливает эти значения в AlarmManager для вызова тревоги.Хранение часов и минутных значений от TimePicker

Я могу отображать час и минуту на экране правильно, но я не могу хранить их для использования alarmManager. Как я могу это сделать?

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { 
Calendar calendar = Calendar.getInstance(); 
int hour = calendar.get(Calendar.HOUR_OF_DAY); 
int minute = calendar.get(Calendar.MINUTE); 

static final int timePicker1 = 1; 

//need to store values in here 
static int aHour1, aMin1; 

private int mChosenTime = 1; 

int cur = 0; 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Bundle bundle = this.getArguments(); 
    if (bundle != null) { 
     mChosenTime = bundle.getInt("TIME", 1); 
    } 

    switch (mChosenTime) { 
     case timePicker1: 
      cur = timePicker1; 
      return new TimePickerDialog(getActivity(),AlertDialog.THEME_HOLO_DARK, this, hour, minute, DateFormat.is24HourFormat(getActivity())); 
    } 
    return null; 
} 

@Override 
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
    if (cur == timePicker1) { 
     TextView alarmTimePicker01 = (TextView) getActivity().findViewById(R.id.alarmTimePicker01); 
     alarmTimePicker01.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute)); 
     aHour1 = valueOf(hourOfDay); 
     aMin1 = valueOf(minute); 
} 

(* Я думаю, что мой код какой-то ... странно. К сожалению об этом :()

+0

где вы получаете ошибку – Gaurav

+0

aHour1 = valueOf (hourOfDay); aMin1 = значениеOf (минута); , aHour1 и aMin1 ничего не получили ... – Laione

+0

вставьте свой logcat с ошибкой в ​​вопрос – Gaurav

ответ

1

Вы можете использовать что-то вроде этого

Calendar cal= Calendar.getInstance(); 
    cal.set(Calendar.HOUR_OF_DAY, 9); 
    cal.set(Calendar.MINUTE, 0); 
    cal.set(Calendar.SECOND, 0); 
    PendingIntent pi = PendingIntent.getService(context, 0, 
     new Intent(context, MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT); 
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
          AlarmManager.INTERVAL_DAY, pi); 

Надежда это работает для вас.

+0

Боже, спасибо! Я думал, что это проблема с таймером, но у меня была опечатка на части alarmManager ... – Laione

0

Пожалуйста, проверьте код .I реализации в моей заявки ниже код ...

final Calendar c = Calendar.getInstance(); 
     mHour = c.get(Calendar.HOUR_OF_DAY); 
     mMinute = c.get(Calendar.MINUTE); 
     TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
       new TimePickerDialog.OnTimeSetListener() { 

        @Override 
        public void onTimeSet(TimePicker view, int hourOfDay, 
              int minute) { 
         String AM_PM = " AM"; 
         String mm_precede = ""; 
         if (hourOfDay >= 12) { 
          AM_PM = " PM"; 
          if (hourOfDay >= 13 && hourOfDay < 24) { 
           hourOfDay -= 12; 
          } else { 
           hourOfDay = 12; 
          } 
         } else if (hourOfDay == 0) { 
          hourOfDay = 12; 
         } 
         if (minute < 10) { 
          mm_precede = "0"; 
         } 

         editTeimet.setText(hourOfDay + ":" + mm_precede + minute + AM_PM); 
        } 
       }, mHour, mMinute, false); 
     timePickerDialog.show(); 

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

  • Нет связанных вопросов^_^