2017-07-30 79 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(); 
       }