【问题标题】:Storing hour&minute values from TimePicker从 TimePicker 存储小时和分钟值
【发布时间】:2017-01-18 15:17:30
【问题描述】:

我正在编写一个从 TimePicker 获取小时/分钟值的应用程序,将它们显示在屏幕上并在 AlarmManager 中设置这些值以响铃。

我可以在屏幕上正确显示小时和分钟,但我无法存储它们以供使用 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);
}

(* 我认为我的代码有点……“奇怪”。对此感到抱歉:()

【问题讨论】:

  • 哪里出错了
  • aHour1 = valueOf(hourOfDay); aMin1 = valueOf(分钟); , aHour1 和 aMin1 什么都没有...
  • 粘贴有问题的 logcat

标签: android timepicker


【解决方案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);

希望这对你有用。

【讨论】:

  • 上帝,谢谢!我认为这是时间选择器的问题,但我在 alarmManager 部分有错字...
【解决方案2】:

请检查代码。我通过以下代码在我的应用程序中实现...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多