【问题标题】:Retrieve field from LocalDate that has more than one event [closed]从具有多个事件的 LocalDate 中检索字段 [关闭]
【发布时间】:2023-01-12 21:01:15
【问题描述】:

我正在构建一个添加事件的日历应用程序,然后在每个特定日期你都可以看到这些事件。我的问题是,在每个日期块中,我都试图添加膨胀块,该块将在每个日期显示事件的标题,如果用户想查看更多详细信息,他可以双击。由于空间原因,在每个块中将仅显示 2 个事件标题。我正在使用 DatabaseHelper,当一个日期有 2 个事件时,这两个事件只有日期相同。因此,当我尝试显示这些单独的事件时,我找不到检索第二个事件的方法,因为代码读取了特定日期的第一个事件,而忽略了该日期的第二个事件。

数字是每个月的日期:例如:1 月 5 日 往下两块是这一天里面的事件标题,当这一天只有一个事件时,第二块是隐藏的。

【问题讨论】:

标签: java android


【解决方案1】:

从具有多个事件的 LocalDate 中检索字段

我正在构建一个添加事件的日历应用程序,然后在每个特定日期你都可以看到这些事件。我的问题是,在每个日期块中,我都试图添加膨胀块,该块将在每个日期显示事件的标题,如果用户想查看更多详细信息,他可以双击。由于空间原因,在每个块中将仅显示 2 个事件标题。我正在使用 DatabaseHelper,当一个日期有 2 个事件时,这两个事件只有日期相同。因此,当我尝试显示这些单独的事件时,我找不到检索第二个事件的方法,因为代码读取了特定日期的第一个事件,而忽略了该日期的第二个事件。

解决了

我使用 2 个循环遍历对象事件的 ArrayList 来解决它,第一个循环从 0 开始,第二个循环从 arraylist 大小开始。我比较 localdate 值相同的位置,然后将正确的值插入块。

我的代码:

ArrayList<Event> myEvents = new ArrayList<>();
        while (cursor.moveToNext()) {
            Event eventDB = new Event(cursor.getString(0), cursor.getString(1), cursor.getString(2),
                    CalendarUtils.stringToLocalDate(cursor.getString(3)), LocalTime.parse(cursor.getString(4)));
            myEvents.add(eventDB);
        }


        cursor.moveToPosition(0);
        while (cursor.moveToNext()) {



            for (int i = 0; i < myEvents.size(); i++) {
                if (myEvents.get(i).getDate().equals(date) && LocalTime.parse(cursor.getString(4)).equals(myEvents.get(i).getTime())) {

                    holder.eventDayText.setVisibility(View.VISIBLE);
                    holder.eventDayText.setText(myEvents.get(i).getName());
                    holder.eventDayText.setTextColor(Color.BLUE);
                    holder.eventDayText.setBackgroundResource(R.drawable.rounded_corner);



                    for (int j = myEvents.size()-1; j >= 0; j--) {
                        if (myEvents.get(i).getDate().equals(myEvents.get(j).getDate()) && i < myEvents.size() ) {
                            if (myEvents.get(j).getName().equals(myEvents.get(i).getName())) {
                                holder.eventDayText2.setVisibility(View.GONE);

                            } else {
                                holder.eventDayText2.setVisibility(View.VISIBLE);
                                holder.eventDayText2.setText(myEvents.get(j).getName());
                                holder.eventDayText2.setTextColor(Color.BLUE);
                                holder.eventDayText2.setBackgroundResource(R.drawable.rounded_corner);

                            }
                        }

                    }

                }


            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多