2014-10-01 73 views
7

我正嘗試在我的應用程序中爲顯示事件和相關信息創建自定義日曆。 但我不知道如何顯示這些信息。這是日曆的代碼:使用ExtendedCalendarView顯示事件信息

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ExtendedCalendarView calendar = (ExtendedCalendarView)findViewById(R.id.calendar); 
    ContentValues values = new ContentValues(); 
    values.put(CalendarProvider.COLOR, Event.COLOR_BLUE); 
    values.put(CalendarProvider.DESCRIPTION, "Some Description"); 
    values.put(CalendarProvider.LOCATION, "Some location"); 
    values.put(CalendarProvider.EVENT, "Event name"); 

    Calendar cal = Calendar.getInstance(); 
    TimeZone tz = TimeZone.getDefault(); 
    cal.set(startDayYear, startDayMonth, startDayDay, startTimeHour, startTimeMin); 
    int StartDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis()))); 
    values.put(CalendarProvider.START, cal.getTimeInMillis()); 
    values.put(CalendarProvider.START_DAY, StartDayJulian); 

    cal.set(endDayYear, endDayMonth, endDayDay, endTimeHour, endTimeMin); 
    int endDayJulian = Time.getJulianDay(cal.getTimeInMillis(), TimeUnit.MILLISECONDS.toSeconds(tz.getOffset(cal.getTimeInMillis()))); 

    values.put(CalendarProvider.END, cal.getTimeInMillis()); 
    values.put(CalendarProvider.END_DAY, endDayJulian); 

    // Uri uri = getContentResolver().insert(CalendarProvider.CONTENT_URI, values); 
} 

我可以看到日曆和事件,但可能我已經實現了顯示infomations一些「點擊」的方法。任何使用此庫的人都可以幫助我?因爲我找不到任何有關的信息。 謝謝。

回答

4

我自己找到了答案。

cal.setOnDayClickListener(new OnDayClickListener() { 
     @Override 
     public void onDayClicked(AdapterView<?> adapter, View view, 
       int position, long id, Day day) { 

      dayIsClicked = true; 
      clickedDay = day; 
      getScheduleDetails(day); 

      list.setAdapter(new ListaAdapter(context, R.layout.itemlist, 
          itemsList)); 

       } 

      } 

    }); 

private void getScheduleDetails(Day day) { 

itemsList = new ArrayList(); 

for (Event e : day.getEvents()) 
{ 
    itemsList.add(e); 
} 

}

+0

我無法適用的,因爲有些東西錯過了那麼u能plz向我的代碼項目與活動增加,以及列表的方法在屏幕截圖中顯示listview中的事件。 – jatin 2015-05-05 07:43:03

+0

我也需要完整的代碼。 – user2872856 2017-03-25 04:27:48

2

-i顯示在日曆下方的列表視圖的信息。

這樣子。 enter image description here

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_layout_location_site_calendar); 
     this.ctx = this; 

     this.extendedCalendarView = (ExtendedCalendarView) findViewById(R.id.extendedCalendarView_addLocationSiteCalendar_CALENDAR); 
     this.listViewCalendar = (ListView) findViewById(R.id.listView_addLocationSiteCalendar_CALENDARLIST); 
     //Disable Scrolling 
     this.listViewCalendar.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       return true; 
      } 
     }); 

     this.extendedCalendarView.setGesture(ExtendedCalendarView.LEFT_RIGHT_GESTURE); 
     addEvent();//test 
     addEvent2();//test 

     initExtras(savedInstanceState); 
     initListener(); 
    } 


private void initListener() { 
     extendedCalendarView.setOnDayClickListener(new ExtendedCalendarView.OnDayClickListener() { 
      @Override 
      public void onDayClicked(AdapterView<?> adapter, View view, int position, long id, Day day) { 
       ArrayList<HashMap<Integer, String>> eventList = new ArrayList<HashMap<Integer, String>>(); 
       for (Event e : day.getEvents()) { 
        HashMap<Integer, String> event = new HashMap<Integer, String>(); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_TITLE, e.getTitle()); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_SUBTITLE, e.getDescription()); 
        event.put(NumericValues.LISTROW_ID_IMG_T_ST_IDC_KEY_INDICATOR, e.getStartDate("hh:mm") + " - " + e.getEndDate("hh:mm")); 
        eventList.add(event); 
       } 
       CalendarListViewAdapter listAdapter = new CalendarListViewAdapter(_this, eventList); 
       listViewCalendar.setAdapter(listAdapter); 
       ListViewUtil.setListViewHeightBasedOnChildren(listViewCalendar); 
      } 
     }); 
    } 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <com.tyczj.extendedcalendarview.ExtendedCalendarView 
      android:id="@+id/extendedCalendarView_addLocationSiteCalendar_CALENDAR" 
      android:layout_height="350dp" 
      android:layout_width="match_parent" /> 
     <ListView 
      android:id="@+id/listView_addLocationSiteCalendar_CALENDARLIST" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:divider="@drawable/list_divider" 
      android:dividerHeight="1px" 
      android:listSelector="@drawable/contacts_list_selector" /> 
    </LinearLayout> 
</ScrollView> 

+1

看起來很不錯。我會盡快嘗試。謝謝 – 2015-01-19 10:38:40

+0

如何導入/引用listViewCalendar? – user2872856 2017-03-25 04:28:51

+0

對不起,我不明白。你用import/make reference表示什麼? – 2017-03-27 07:48:26