2017-07-30 83 views
-1

我有一个问题 - 我正在创建一个应用程序,并且我想在按钮上添加一个新事件到用户日历(我有一个S Planner,因此我正在测试它)单击。问题在于它的日期和时间 - 它不会改变。代码如下:在按钮上向S Planner添加事件点击

bCalendar.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
    Intent calintent = new Intent(Intent.ACTION_INSERT); 
    calintent.setType("vnd.android.cursor.item/event"); 
    calintent.putExtra(CalendarContract.Events.TITLE, eventname); 
    calintent.putExtra(CalendarContract.Events.EVENT_LOCATION, city + ", " + street); 
    calintent.putExtra(CalendarContract.Events.DESCRIPTION, description); 
    calintent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, timestart); 
    startActivity(calintent); 
} 
}); 

timestart是通过其他活动(例如“15:00”)传递的字符串。

我想从我的活动中插入数据到三星的S Planner中。除了日期和时间之外,插入所有内容都没有问题。 Screenshot那里没有什么变化。如果您需要任何进一步的细节,请告诉。

+0

from doc:* Intent Extras key:事件的开始时间或定期事件的实例。 **(自纪元以来的毫秒数)*** ......所以你为什么要把字符串放在那里? – Selvin

+0

我应该使用哪种数据类型? – Dalsein

+0

long ........... – Selvin

回答

0

管理这样做谢谢Selvin指出我的错误。 创建一个包含日期和时间的字符串,并将其使用SimpleDateFormat 转换为long。

bCalendar.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent calintent = new Intent(Intent.ACTION_INSERT); 
       String dateString = datestart+" "+timestart; 
       SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
       try{ 
       Date d = f.parse(dateString); 
        long millis = d.getTime(); 
        calintent.setType("vnd.android.cursor.item/event"); 
        calintent.putExtra(CalendarContract.Events.TITLE, eventname); 
        calintent.putExtra(CalendarContract.Events.EVENT_LOCATION, city + ", " + street); 
        calintent.putExtra(CalendarContract.Events.DESCRIPTION, description); 
        calintent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, millis); 
        startActivity(calintent); 
       } catch(ParseException e){ 
        e.printStackTrace(); 
       }