使用没有帐户的Android Eclipse日历

时间:2015-03-23 13:54:39

标签: android eclipse calendar account

我有一个问题。

我正在使用Android日历(只是XML图形编辑器中的默认日历)。我希望能够添加事件,但Eclipse一直在唠叨我需要与帐户同步。然而,一旦我创建(并同步!)这个帐户(只是我的个人帐户),它仍然无法正常工作。我做了一些研究,但无法在网上找到答案/解决方案。我遵循了几个日历教程,但这种情况不断出现。

我的问题是:是否可以在不使用Google帐户的情况下在日历中创建活动?最终我甚至想尽可能自动生成事件,但是现在只需通过点击按钮添加一个事件就会让我非常高兴!

我的XML文件:

<RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.deitel.welcome.CalendarActivity" >

<CalendarView
    android:id="@+id/calendarView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/button1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />

<Button
    android:id="@+id/btn1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:text="Add Event" />

</RelativeLayout>

我的Java代码:

package com.deitel.welcome;

import java.util.Calendar;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.CalendarContract.Calendars;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class CalendarActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calendar);

    Button button = (Button) findViewById(R.id.btn1);
    button.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {

            //add event to calendar
            addCalendarEvent();
        }

    });

}

public void addCalendarEvent(){

    Calendar cal = Calendar.getInstance();     
    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra("beginTime", cal.getTimeInMillis());
    intent.putExtra("allDay", true);
    intent.putExtra("rrule", "FREQ=YEARLY");
    intent.putExtra("endTime", cal.getTimeInMillis()+60*60*1000);
    intent.putExtra("title", "Test Event");
    intent.putExtra("description", "This is a sample description");
    startActivity(intent);
}

我还在Manifest中添加了用户可以通过添加以下两行来写入和读取事件的权限:

  <uses-permission android:name="android.permission.WRITE_CALENDAR" />
  <uses-permission android:name="android.permission.READ_CALENDAR" />

所以请...有人知道是否

1)可以将事件添加到日历而无需同步Google帐户吗? 2)我如何在我的代码中实现它?

非常感谢你阅读并花时间回答!

1 个答案:

答案 0 :(得分:0)

您的问题不在于您使用CalendarView,而在于您用于添加事件的意图。该意图专门用于向Android日历添加事件,该日历由Google帐户支持。此外,您添加的权限用于访问设备日历。

是的,如果您的应用是本地数据,则可以创建自己的日历,但这并不容易。您必须创建用于添加和显示事件的布局,以及将数据保存在文件或某个数据库中