标签: android-calendar

删除并更新现有日历事件

我正在遵循这个要点,进入insert事件Calendar

我如何update使用下面的代码插入我之前插入的日历事件:

public void addToCalender() throws ParseException {

        ......

        ContentValues event = new ContentValues();
        event.put(CalendarContract.Events.CALENDAR_ID, calendarId[0]);
        event.put(CalendarContract.Events.TITLE, "Event Title");
        event.put(CalendarContract.Events.DESCRIPTION, "Event Description");
        event.put(CalendarContract.Events.EVENT_LOCATION, "Eevnt Location");
        event.put(CalendarContract.Events.DTSTART, startCalTime);
        event.put(CalendarContract.Events.DTEND, endCalTime);
        event.put(CalendarContract.Events.STATUS, 1);
        event.put(CalendarContract.Events.HAS_ALARM, 1);
        event.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());

        Uri insertEventUri = AddEventActivity.this.getContentResolver().insert(
                eventsUri, event);

        ContentValues reminders = new ContentValues();
        reminders.put(Reminders.EVENT_ID,
                Long.parseLong(insertEventUri.getLastPathSegment()));
        reminders.put(Reminders.METHOD, Reminders.METHOD_ALERT);
        reminders.put(Reminders.MINUTES, 10);

        AddEventActivity.this.getContentResolver().insert(remainderUri, reminders);
    }
Run Code Online (Sandbox Code Playgroud)

我想知道,我该怎么做:

1. Remove existing event

2. Update existing event
Run Code Online (Sandbox Code Playgroud)

android calendar android-calendar

14
推荐指数
2
解决办法
2370
查看次数

如何使用新的Android 4.0 Ice Cream Sandwich API阅读和编辑Android日历活动?

当他们想要添加新活动时,我们正在尝试向用户显示冰淇淋三明治日历视图.我们只能在模拟器中测试它.

另一个问题是我们找不到任何使用CalendarProvider的示例.在处理三明治日历时,这是正确的课程吗?

使用Google Gdata API会更容易吗?

[编辑]所以我们工作的是向日历添加一个事件,但不是通过API,我们在正确的视图中打开日历.但现在问题是它在模拟器中不起作用,因为我们无法同步日历.

所以问题是:如何使用新的Android 4.0 Ice Cream Sandwich API阅读和编辑Android日历事件?

android android-calendar android-4.0-ice-cream-sandwich

13
推荐指数
2
解决办法
5万
查看次数

如何将私有数据附加到android日历事件

我们如何将一些额外的数据附加到日历事件,如文件,照片,简单的字符串等,..

我使用扩展属性,并能够通过扩展属性插入一些额外的数据

Uri extendedProperties=Uri.parse("content://com.android.calendar/extendedproperties");
ContentValues extendedValues=new ContentValues();
extendedValues.put("event_id", id);
extendedValues.put("name",key);
extendedValues.put("value",value);
getApplicationContext().getContentResolver().insert(extendedProperties, extendedValues);
Run Code Online (Sandbox Code Playgroud)

然后能够像下面那样检索这些数据

Uri extentdedProperties=Uri.parse("content://com.android.calendar/extendedproperties");
CursorextendedPropertires Cursor=getContentResolver().query(extentdedProperties,null,"event_id = "+Id +",null,null);
Run Code Online (Sandbox Code Playgroud)

它适用于Android 2.2 ...相同的代码,如果在Android 4.0(冰淇淋三明治)测试.它抛出的错误是只有同步适配器才能访问内容://com.android.calendar/extendedproperties.

所以我把查询称为"callerissyncadapter".现在我能够插入扩展属性.但是,一旦事件同步到服务器,服务器就会删除扩展属性.

日历提供商(谷歌除外)也不完全支持这些扩展属性

有没有办法将一些额外的数据附加到除extendedproperties之外的日历事件,或者我们能否以更好的方式使用这些扩展属性.

android google-calendar-api android-calendar

13
推荐指数
1
解决办法
1761
查看次数

如何在Android中阅读谷歌日历事件?

我正在阅读所有的Android日历事件,它使用下面的代码工作正常,但我想从用户邮件帐户中获取所有谷歌日历事件.我怎么能这样做?任何建议或示例程序都会非常有用!

例如:我想获取xxxxxxxxx@gmail.com的事件(我在android手机中打开的邮件帐号)

public static void readCalendarEvent(Context context) throws ParseException {
        ContentResolver contentResolver = context.getContentResolver();
        Calendar calendar = Calendar.getInstance();
        String dtstart = "dtstart";
        String dtend = "dtend";


        SimpleDateFormat    displayFormatter = new SimpleDateFormat("MMMM dd, yyyy (EEEE)");

         stime=displayFormatter.format(calendar.getTime());     

        SimpleDateFormat startFormatter = new SimpleDateFormat("MM/dd/yy");
        String dateString = startFormatter.format(calendar.getTime());

        long after = calendar.getTimeInMillis();
        SimpleDateFormat formatterr = new SimpleDateFormat("hh:mm:ss MM/dd/yy");
        Calendar endOfDay = Calendar.getInstance();
        Date dateCCC = formatterr.parse("47:59:59 " + dateString);
        endOfDay.setTime(dateCCC);



        cursor = contentResolver.query(Uri.parse("content://com.android.calendar/calendars"), (new String[] { "calendar_id", "title", "description", "dtstart", "dtend","eventTimezone", "eventLocation" }), "(" …
Run Code Online (Sandbox Code Playgroud)

android calendar google-calendar-api android-calendar

13
推荐指数
2
解决办法
2万
查看次数

如何自动将事件添加到日历?

如何自动将事件添加到日历中?如果我使用此源代码,它会打开带有填充条目的日历,但我必须单击"保存"按钮进行保存.

public class CalendarApplicationActivity extends Activity
{  

public static final String[] EVENT_PROJECTION = new String[] 
{  
        Calendars._ID, // 0  
        Calendars.ACCOUNT_NAME, // 1  
        Calendars.CALENDAR_DISPLAY_NAME // 2  
};  


private static final int PROJECTION_DISPLAY_NAME_INDEX = 2;  

@Override 
public void onCreate(Bundle savedInstanceState)
{  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_calendar_application);  
}  

public void onClick(View view) 
{  

    Intent intent = new Intent(Intent.ACTION_INSERT);  
    intent.setType("vnd.android.cursor.item/event");  
    intent.putExtra(Events.TITLE, "Learn Android");  
    intent.putExtra(Events.EVENT_LOCATION, "Home suit home");  
    intent.putExtra(Events.DESCRIPTION, "Download Examples");  

    GregorianCalendar calDate = new GregorianCalendar(2012, 10, 02);  
    intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,  
            calDate.getTimeInMillis());  
    intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,  
            calDate.getTimeInMillis());  

    intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);  


    intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);  
    intent.putExtra(Events.AVAILABILITY, …
Run Code Online (Sandbox Code Playgroud)

android calendar android-emulator android-intent android-calendar

12
推荐指数
1
解决办法
2万
查看次数

新的Android Lollipop日历应用的源代码

有谁知道我在哪里可以找到5.0中出现的更新的Android日历应用程序的源代码?

我确实看过旧日历应用程序源代码,但我没有找到几个月的viewpager存在的位置.事实上我甚至没有找到新的日历启动器.所以我觉得我可能会在错误的地方寻找它.

这是我正在寻找的屏幕.我想知道Google是如何在几个月内完成分页的,突出显示所选日期,事件日期,以及当月份数较少时,他们如何调整视图寻呼机的大小.

月份日历位于顶部,可以移动.

android android-calendar android-viewpager

12
推荐指数
1
解决办法
2万
查看次数

箭头在哪里?

编辑/注意:我真的需要一个答案,我想继续使用"股票"谷歌Android API.我已经在此创造了+100的赏金,但如果我在接下来的几天内使用股票API得到一个简单的解决方案,我将再增加+100,使其值200点.

我正在尝试使用Android CalendarView控件.我在NestedScrollView中使用按钮和CalendarView制作了一个小应用程序.我做了按钮,它的边距非常大,所以我可以验证滚动工作.在运行Android 6.01的三星Galaxy S5上运行正常.但是在运行4.2.2的三星S Duo(这是我的预定目标)上,没有办法提前一个月(注意当月没有箭头)

这是运行Android 6.01的三星S5的屏幕截图

s5截图

这是三星的Duo运行4.2.2

S Duo截图

content_main.xml看起来像这样...

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <!-- This linear layout is because the scrollview can have only 1 direct child -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">

        <Button
            android:id="@+id/recordEnd"
            android:layout_width="200dp"
            android:layout_height="100dp"
            android:layout_marginTop="100dp"
            android:layout_marginBottom="100dp"
            android:gravity="center"
            android:text="Record End"/>

        <CalendarView
            android:id="@+id/thecalendar"
            android:layout_width="240dp"
            android:layout_height="300dp"
            android:minDate="01/01/2016"
            android:maxDate="11/30/2016"/>
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

...在Android Studio中,设计视图确实显示了箭头.我不知道如何调试这个.

android android-calendar

12
推荐指数
2
解决办法
2053
查看次数

有没有办法在Android日历视图中检测月份更改(即当用户将日历更改为另一个月时)

我希望在日历视图中显示月份,但我无法弄明白.我试过了

calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {

        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month,
                                        int dayOfMonth) {
            int d = dayOfMonth;
            int m = month;
            Log.d("month", "" + m);
            String curDate = String.valueOf(d);

        }
});
Run Code Online (Sandbox Code Playgroud)

但它仅在用户点击月份的日期时触发.我想要的是当用户更改月份时我想要更改的月份(即日历视图中显示的月份).任何帮助将不胜感激.提前致谢.

java android android-calendar calendarview

12
推荐指数
1
解决办法
1954
查看次数

使用CalendarContract阅读今天的所有活动 - Android 4.0+

我正在尝试使用Android的新日历API来阅读今天的所有日历活动.我无法在数据库查询中找到正确的选择以返回所有事件.似乎所有经常性和全天活动都被排除在选择之外.什么样的选择允许我从日历api获得今天的所有活动?

这是我目前的尝试:

    Cursor cur = null;
    String selection = "((" + CalendarContract.Events.DTSTART
            + " >= ?) AND (" + CalendarContract.Events.DTEND + " <= ?))";
    Time t = new Time();
    t.setToNow();
    String dtStart = Long.toString(t.toMillis(false));
    t.set(59, 59, 23, t.monthDay, t.month, t.year);
    String dtEnd = Long.toString(t.toMillis(false));
    String[] selectionArgs = new String[] { dtStart, dtEnd };
    cur = c.getContentResolver().query(CalendarContract.Events.CONTENT_URI,
            null, selection, selectionArgs, null);
Run Code Online (Sandbox Code Playgroud)

我不确定如何扩大选择范围或增加选择以获得重复活动和全天活动.任何帮助,将不胜感激.

android android-calendar android-4.0-ice-cream-sandwich

11
推荐指数
2
解决办法
1万
查看次数

在议程视图中显示今天,即使没有附加"未创建活动"的活动

我有一个带有四个View的Android日历

  • 选项:周视图,月视图,日视图和日程视图.

    我想在议程视图列表中显示今天,即使没有附加到今天的事件.我试图检查今天是否存在任何事件.但如果我强行添加额外的数据,我会得到nullpointer例外.以下是日历议程视图的视图.

我有一个stickyheader列表视图来显示事件列表.能够显示活动的所有日子.但我的问题是:如何显示今天即使没有"今天没有事件创建现在选项"的事件.

任何帮助将不胜感激.

已使用https://github.com/Etar-Group/Etar-Calendar/tree/master/src/com/android/calendar/agenda显示和加载事件.

CalendarView

java android android-calendar

11
推荐指数
0
解决办法
845
查看次数