我正在开发一个日历应用程序,这就是我想做的事情; 例如,我在一个月的不同日期和日历上有各种活动,我想在有活动的日子里添加一个图标(例如音乐会).如果一天没有活动,这一天将没有图标.
注意:我使用CalendarView作为日历UI.
这是我想要解释的图像;
http://postimage.org/image/kdejw72nb/
请帮助我在这个特殊的日子里添加这个小图标.
提前致谢.
android calendar android-custom-view android-calendar calendarview
我想在Android应用程序中获取当前时间(HH:MM:SEC:MILLISEC).我正在使用这段代码:
Calendar c = Calendar.getInstance();
int time_start = c.get(Calendar.MILLISECOND);
Run Code Online (Sandbox Code Playgroud)
"获取和设置的字段编号表示小时内的分钟.例如,在10:04:15.250 PM,MILLI为250."
我已经查看了其他方法,但是我找不到任何指定它会输出所有内容的东西.无论如何我能得到H:M:Sec:MilliSec?或者我只需要做类似的事情
c.get(Calendar.HOUR).get(Calendar.MINUTE).get(Calendar.SECOND).get(Calendar.MILLISECOND).
Run Code Online (Sandbox Code Playgroud) 我的要求: - 我正在尝试创建一个只有日历功能的应用,当用户打开应用时,日历会像谷歌日历一样打开.我从Web服务接收事件,我必须根据日历中的日期显示这些事件.现在,如果他们是任何日期的任何事件,而不是他们应该是事件时间的颜色块,并且如果有多个事件,那么我们必须为一个事件显示多个颜色块.
我在这里提出了一个很好的建议.我可以通过默认库或API来执行此操作吗?因为我读过的Android API的Calendar,CalendarView,calendar-provider,CalendarContract.但没有人告诉我们如何在自己的日历中显示事件.
所以我正在尝试使用自定义日历.我可以使用创建自定义日历Gridview.
.
我希望它与事件看起来像这样
.
BTW我的最低Android支持是android v4.0
我找不到一种方法来将异常日期插入到重复发生的事件中.
我正在使用成功的事件解析.ics文件(ical格式).这是.ics
BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:TESTING
X-WR-TIMEZONE:Europe/Amsterdam
X-WR-CALDESC:
BEGIN:VTIMEZONE
TZID:Europe/Amsterdam
X-LIC-LOCATION:Europe/Amsterdam
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Amsterdam:20140425T103000
DTEND;TZID=Europe/Amsterdam:20140425T113000
RRULE:FREQ=WEEKLY;BYDAY=FR
EXDATE;TZID=Europe/Amsterdam:20140516T103000
EXDATE;TZID=Europe/Amsterdam:20140502T103000
DTSTAMP:20140425T090449Z
UID:3bb37doi3qcuaih3t03ns0q9jo@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=TESTIN
G;X-NUM-GUESTS=0:mailto:domain.com_o300s@group.calendar.google.com
CREATED:20140425T090310Z
DESCRIPTION:
LAST-MODIFIED:20140425T090427Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:my-recurring-event-with-ex
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
Run Code Online (Sandbox Code Playgroud)
然后,该事件将通过CalendarContract API插入到Android日历中.
dtstart:20140425T103000 dtend:20140425T113000 rrule:FREQ = WEEKLY; BYDAY = FR
如果我现在查询我的日历,我将在2014年4月25日的每个星期五看到一个活动.
问题是我还需要排除一些日期(见ical:2014年5月2日和2014年5月16日)
我尝试插入16的exdate可能只使用这样的EXDATE字段: 添加日历事件时的android:EXDATE格式 但是这不起作用,并且基于Android日历源代码甚至没有使用它.
我尝试使用CONTENT_EXCEPTION_URI插入异常通过这样的帖子:从原始重复事件中创建异常事件? Google日历代码:https://github.com/android/platform_packages_apps_calendar/blob/master/src/com/android/calendar/EventInfoFragment.java#L1401
ContentValues values2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的应用程序最后更新时显示在TextView中(例如,"上次更新时间为12:13).我正在尝试使用Calendar实例,我认为我理解正确,但我似乎遇到了麻烦.我知道获取一个实例我使用Calendar.getInstance()方法.然后得到我使用Calendar.get(Calendar.HOUR)和Calendar.get(Calendar.MINUTE)的小时和分钟.我的分钟字段正确返回但是日历.HOUR小时24小时回来,我想要一个12小时的时钟.我觉得HOUR_OF_DAY是24小时制.我哪里错了?
这是我正在使用的代码:
Calendar rightNow = Calendar.getInstance();
mTv.setText("Refreshed! Last updated " +
rightNow.get(Calendar.HOUR) + ":" +
rightNow.get(Calendar.MINUTE) + ".");
Run Code Online (Sandbox Code Playgroud)
mTv是我正在更新的TextView.谢谢你的帮助.
此外,如果我能说"最近更新5分钟前",那将是理想的选择.而不是"最后更新时间为下午12:13".但是我不确定每分钟都有这种更新的最佳方法,而不会耗尽资源或电池......?
我正在尝试创建一个与Google日历接口的Android应用程序.
我从这里开始使用内容提供程序.此处解释了此代码的部分内容.
我正面临以下问题.
我从笔记本电脑上在线创建了一个新的日历TestCalendar,并将其标记为已选中.当我从应用程序查询我的日历时,我可以看到这个新日历,但它显示为未选中(selected = 0).有关为什么会发生这种情况的任何建议?
从我的应用程序中,我将事件添加到日历中
getContentResolver().insert(eventsUri, event);
.事件反映在手机上的日历中,但它不会反映在在线版本中.要在线推送这个新活动,我必须手动同步日历,或打开自动同步,我认为这不是正确的方式.任何可能有帮助的建议/链接?
我想从android日历中检索最后添加的事件的数据.我正在使用此代码获取最后一个ID.
public static long getNewEventId(ContentResolver cr, Uri cal_uri)
{
Uri local_uri = cal_uri;
if (cal_uri == null)
{
local_uri = Uri.parse("content://com.android.calendar/events");
}
Cursor cursor = cr.query(local_uri,
new String[] { "MAX(_id) as max_id" }, null, null, "_id");
cursor.moveToFirst();
long max_val = cursor.getLong(cursor.getColumnIndex("max_id"));
return max_val + 1;
}
Run Code Online (Sandbox Code Playgroud)
然后我只需使用以下代码添加一个事件:
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra("beginTime", SelectedDate);
intent.putExtra("allDay", false);
intent.putExtra("rrule", "FsREQ=DAILY");
intent.putExtra("endTime", SelectedDate + 60 * 60 * 1000);
intent.putExtra("title", "Advance Scheduler Event");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
在此之后,我只需使用以下代码检索此事件的数据:
public CalendarData EventDetails(int …Run Code Online (Sandbox Code Playgroud) 我是Android(和Java)的新手,请帮我解决这个问题.
我试图在DatePicker的CalendarView中隐藏周数,发现一个布尔值设置为true,调用:
mShowWeekNumber
Run Code Online (Sandbox Code Playgroud)
内
mCalendarView
Run Code Online (Sandbox Code Playgroud)
在DatePicker中,但我怎样才能将此值设置为false ....
任何帮助将不胜感激.
我知道,我不是第一个问这个问题的人.我在堆栈中发现了许多问题,比如
但上述都没有解决这个问题.现在到我的代码.
我正在使用日历合同提供程序api进行所有操作(不需要支持旧的Android版本).它不是一个同步适配器.
我们成功删除了所有事件(通过从事件表本身删除事件).
但是当我尝试使用Events.CONTENT_EXCEPTION_URI(通过插入)删除事件的发生时,所有事件都消失了.以下是我的代码
ContentValues args = new ContentValues();
args.put(Events.TITLE, eNote.getEventTitle());
args.put(Events.DTSTART, eNote.getStartTimeMill());
args.put(CalendarContract.Events.ORIGINAL_INSTANCE_TIME, eNote.getStartTimeMill());
args.put(Events.ORIGINAL_SYNC_ID, 1);
args.put(Events.HAS_ALARM, "0");
args.put(Events.HAS_ATTENDEE_DATA,"0");
args.put(CalendarContract.Events.EVENT_TIMEZONE, eNote.getTimeZone());
args.put(CalendarContract.Events.STATUS, CalendarContract.Events.STATUS_CANCELED);
Uri.Builder eventUriBuilder = CalendarContract.Events.CONTENT_EXCEPTION_URI.buildUpon();
ContentUris.appendId(eventUriBuilder, eventID);
try {
final Uri resultUri = activity.getContentResolver().insert(eventUriBuilder.build(), args);
int eventIDNew = Integer.parseInt(resultUri.getLastPathSegment());
Log.i(Global.DEBUG_TAG,"eventIDNew : " +eventIDNew);
} catch (Exception e) {
e.printStackTrace();
Log.i(Global.DEBUG_TAG,
"Eroor : " +e.getMessage() );
}
Run Code Online (Sandbox Code Playgroud)
eNote是一个对象,存储来自实例表的事件的详细信息,
给定值args.put(Events.ORIGINAL_SYNC_ID,1); 直接,因为我没有在创建事件时设置同步ID,我们不需要任何同步操作
插入异常uri会返回一个新ID,但这会使所有事件都消失.
代码有什么问题..请帮助我们,我们欢迎所有的建议,并感谢所有...
我有用于显示事件日历的 UI,并且需要显示 API 中的事件。但我不知道该怎么做。我尝试更改 _event 上的列表,但没有响应。我需要在日历上显示它,以便我的公司日历可以显示该活动。
这是我的 UI 日历
import 'package:intl/intl.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:urus_flutter/persentation/custom_color.dart';
import 'package:urus_flutter/persentation/custom_text_style.dart';
import 'package:table_calendar/table_calendar.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Calender extends StatefulWidget {
@override
State<StatefulWidget> createState() => CalenderState();
}
class CalenderState extends State<Calender> {
CalendarController _controller;
Map<DateTime, List<dynamic>> _events;
List<dynamic> _selectedEvents;
DateTime _selectedDate;
SharedPreferences prefs;
@override
void initState(){
super.initState();
_controller = CalendarController();
_events = {
DateTime(2021, 6, 22) : ['Meeting URUS', 'Testing Danai Mobile', 'Weekly Report', 'Weekly Meeting'],
DateTime(2021, 6, 25) : ['Weekly Testing'],
DateTime(2021, …Run Code Online (Sandbox Code Playgroud)