【问题标题】:How do i programatically change the Current date and time of an event in android?如何以编程方式更改 android 中事件的当前日期和时间?
【发布时间】:2017-09-26 04:56:49
【问题描述】:

我正在尝试以编程方式将事件添加到我在 Android 中的日历中,我正在选择 date开始日期结束日期,时间

我正在尝试将其发送到日历,但由于某种原因,无论我发送什么,它都只需要当前日期。

我知道我们只需要在 毫秒 内发送,但我应该如何为以后的日期设置事件?

这是我的代码

final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear,
                                  int dayOfMonth) {
                // TODO Auto-generated method stub
                myCalendar.set(Calendar.YEAR, year);
                myCalendar.set(Calendar.MONTH, monthOfYear);
                myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                updateLabel();
            }

        };

     edittext.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                new DatePickerDialog(DetailsActivity.this, date, myCalendar
                        .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                        myCalendar.get(Calendar.DAY_OF_MONTH)).show();
            }
        });
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                readCalendar();
            }
        });
    }
    private void readCalendar() {

        Intent intent = new Intent(Intent.ACTION_INSERT);
        intent.setData(CalendarContract.Events.CONTENT_URI);

        Calendar cal = Calendar.getInstance();
        edittext.setSelected(true);
        long startTime = cal.getTimeInMillis()+24*60*60*1000;
        long endTime = startTime+ 60 * 30 * 1000;

        intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, startTime);
        intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime);
        intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, false);

        intent.putExtra(CalendarContract.Events.TITLE, "DOCTOR APPOINTMENT");

        startActivity(intent);
    }

    private void updateLabel() {
        String myFormat = "MM/dd/yy";
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
        edittext.setText(sdf.format(myCalendar.getTime()));
    }

【问题讨论】:

  • 您到底想在日历中设置什么,因为使用此代码我可以看到结束时间的值为 +1 小时。
  • @KulsDroid 我这样做了,因为我不知道如何设置以后的日期,所以我只是增加毫秒,看看我是否可以设置一天后,有没有更简单的方法去做??
  • 开始时间和结束时间到底要设置什么?
  • 我选择的自定义日期和时间

标签: android android-calendar android-datepicker


【解决方案1】:

您想根据用户选择的日期设置日历事件,因此您需要使用myCalender 实例来获取startTime

long startTime = myCalendar.getTime()+24*60*60*1000;
        long endTime = startTime+ 60 * 30 * 1000;

下面的行创建当前日期时间的日历实例。因此删除它。

 Calendar cal = Calendar.getInstance();

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2018-03-03
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多