2013-07-18 43 views
2

你好朋友需要幫助!如何在Android中設置多個提醒

我正在使用Android,在我的應用程序中,需要一次設置多個提醒。像這樣的東西

for(int i = 0; i < n; i++) 
{ 
    // Code to set Reminder 
} 

目前我有下面的代碼,但是,一次只能提醒一個罰款。

StringTokenizer st=new StringTokenizer(strDateForReminder, "-"); 
      cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(st.nextToken())); 
      cal.set(Calendar.MONTH, Integer.parseInt(st.nextToken())-1); 
      cal.set(Calendar.YEAR, Integer.parseInt(st.nextToken())); 

      String strTime= textView.getText().toString().trim(); 
      // Toast.makeText(getApplicationContext(), "strTime= "+strTime, Toast.LENGTH_LONG).show(); 

      String[] strTimeArray = strTime.split(getResources().getString(R.string.delimiter)); 
      String[] strFirstTime=strTimeArray[0].split(":"); 
      cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(strFirstTime[0])); 
      cal.set(Calendar.MINUTE, Integer.parseInt(strFirstTime[1])); 
      cal.set(Calendar.SECOND, 00); 

      Intent intent = new Intent(Intent.ACTION_EDIT); 
      intent.setType("vnd.android.cursor.item/event"); 
      intent.putExtra("beginTime", cal.getTimeInMillis()); 
      intent.putExtra("endTime", cal.getTimeInMillis()+90*60*1000); 
      intent.putExtra("title", "Reminder"); 
      startActivity(intent); 

請幫忙。提前致謝!

+1

只要在這裏提示代碼,我們將幫助解決這些格式問題。你現在的代碼太基本了,沒有任何幫助。 –

+0

您可以爲此使用AlarmManager clsass。 –

+0

如果您對代碼有特別的疑問,那麼您需要發佈它。否則,看看這個問題的答案http://stackoverflow.com/questions/5976098/how-to-set-a-reminder-in-android?rq=1 –

回答

5

如果我理解正確,使用活動的方法只允許您一次添加一個事件,因爲用戶必須與設備進行交互以確認它。你想要的是4.0中引入的新CalendarContract

Android Cookbook

基於ContentProvider的,方法可以是優選的,如果你不希望用戶必須與日曆應用交互。在Froyo和Gingerbread和Honeycomb版本中,您必須「知道」用於您想與之交互的各個領域的名稱。我們不包括這種方法,因爲它是官方不支持的,但您可以在我們的貢獻者Jim Blacker的網站上找到一篇好文章,網址爲http://jimblackler.net/blog/?p=151

對於Ice Cream Sandwich(Android 4,API level 14)有效,新的CalendarContract類在各種嵌套類中包含製作便攜式日曆應用程序所需的所有常量。這顯示將日曆事件直接插入用戶的第一個日曆(使用ID 1);顯然,應該有一個下拉列表在實際應用程序中列出用戶的日曆。

public void addEvent(Context ctx, String title, Calendar start, Calendar end) { 
    Log.d(TAG, "AddUsingContentProvider.addEvent()"); 

    TextView calendarList = 
     (TextView) ((Activity) ctx).findViewById(R.id.calendarList); 

    ContentResolver contentResolver = ctx.getContentResolver(); 

    ContentValues calEvent = new ContentValues(); 
    calEvent.put(CalendarContract.Events.CALENDAR_ID, 1); // XXX pick) 
    calEvent.put(CalendarContract.Events.TITLE, title); 
    calEvent.put(CalendarContract.Events.DTSTART, start.getTimeInMillis()); 
    calEvent.put(CalendarContract.Events.DTEND, end.getTimeInMillis()); 
    calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, "Canada/Eastern"); 
    Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent); 

    // The returned Uri contains the content-retriever URI for 
    // the newly-inserted event, including its id 
    int id = Integer.parseInt(uri.getLastPathSegment()); 
    Toast.makeText(ctx, "Created Calendar Event " + id, 
     Toast.LENGTH_SHORT).show(); 
} 
+0

這正是我想要的。非常好的ans。非常感謝。! –