【问题标题】:CalendarView to Device Calendar LinkCalendarView 到设备日历链接
【发布时间】:2015-11-13 22:47:05
【问题描述】:

我有一个日历视图。当按下某个日期时,应用程序会在单击的特定日期打开设备的日历:

        calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
            cal = Calendar.getInstance();

            cal.set(year,month,dayOfMonth);

            long epochMillis = cal.getTimeInMillis();

            Uri.Builder uriBuilder =  CalendarContract.CONTENT_URI.buildUpon();
            uriBuilder.appendPath("time");
            ContentUris.appendId(uriBuilder, epochMillis);
            Uri uri = uriBuilder.build();

            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(uri);
            startActivity(i);

        }
    });

这很好用。我的问题是,有没有办法将用户带到“创建事件屏幕”而不是它当前将我带到的位置,这是整个月的视图,突出显示选定的日期?我希望他们能够在我的 CalendarView 中单击一个日期并被带到设备日历上的一个屏幕,让他们可以将约会添加到所选日期。想知道是否有人知道该屏幕的 uri 是什么?谢谢。

【问题讨论】:

    标签: android calendar


    【解决方案1】:

    我终于明白了。两件事。

    1. 我将“时间”附加到我的 URI。这只会在启动意图时指定的特定时间打开日历。为了打开特定日期的事件屏幕,我需要附加“事件”。

    2. 当我创建意图时,我使用了 ACTION_VIEW。相反,我需要 ACTION_INSERT。然后我使用我的新 URI 设置 Intent 的数据,其中包括“事件”,然后指定开始时间,这是我想要的具体日期:

          calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
      @Override
      public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
          cal = Calendar.getInstance();
      
          cal.set(year,month,dayOfMonth);
      
          long epochMillis = cal.getTimeInMillis();
      
          Uri.Builder uriBuilder =  CalendarContract.CONTENT_URI.buildUpon();
          uriBuilder.appendPath("events");
      
          Uri uri = uriBuilder.build();
      
          Intent i = new Intent(Intent.ACTION_INSERT);
          i.setData(uri);
          i.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, epochMillis);
          startActivity(i);
      
      }});
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多