【问题标题】:Show event information with ExtendedCalendarView使用 ExtendedCalendarView 显示事件信息
【发布时间】:2014-10-01 13:52:36
【问题描述】:

我正在尝试为我的应用中的节目活动和相关信息创建自定义日历。 但我不知道如何显示这些信息。这是日历的代码:

@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);
}

我可以看到日历和事件,但可能我必须实现一些“Onclick”方法来显示信息。任何使用这个库的人可以帮助我吗?因为我找不到任何有关的信息。 谢谢。

【问题讨论】:

    标签: java android calendar


    【解决方案1】:

    我自己找到了答案。

    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);
    }
    

    }

    【讨论】:

    • 由于缺少某些东西,我无法应用您的方法,所以请您向我发送此项目的代码,其中包含事件添加以及列表视图中的事件列表作为屏幕截图中的显示。?跨度>
    【解决方案2】:

    我在日历下方的列表视图中显示信息。

    像这样。

    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>
    

    【讨论】:

    • 如何导入/引用 listViewCalendar?
    • 对不起,我不明白。导入/引用是什么意思??
    • 我的例子是基于这个库 github.com/tyczj/ExtendedCalendarView 和“listViewCalendar”只是一个普通的 ListView。
    猜你喜欢
    • 2012-09-19
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    相关资源
    最近更新 更多